0

コンテンツを辞書に読み込むために解析している 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
4

1 に答える 1

0

列が2つしかないので、これはよりpythonicだと思います

cdata = csv.reader(f, delimiter = ';', quoting = csv.QUOTE_NONNUMERIC)
print dict(cdata)
于 2013-04-20T22:36:25.637 に答える