コンテンツを辞書に読み込むために解析している csv ファイルがあります。ただし、以下のコードでは、すべてのキーと値のペアのすべての値を括弧で囲んでいます。
import csv
f = open(input('Which csv file: '))
cdata = csv.reader(f, delimiter = ';', quoting = csv.QUOTE_NONNUMERIC)
cdict = {}
for row in cdata:
cdict[row[0]] = row[1:]
print(cdict)
f.close()
私が試してみました:
for row in cdata:
row = "".join(row)
cdict[row[0]] = row[1:]
しかし、エラーを受け取ります:
TypeError: sequence item 0: expected str instance, float found
csv の内容を文字列ではなく浮動小数点数として読み取ったのは、そもそも余分な文字を削除するためでした。辞書への最終出力には、csv からの実際の数値のみを含める必要があります。つまり、引用符や括弧は必要ありません。
以下は私が探しているものを返しますが、これを行うにはもっとpythonicな方法が必要です:
for row in cdata:
cdict[row[0]] = row.pop()
csv データの例:
Number;Value
0;13.168159
1;13.1681598889
2;13.0313661591