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

由于只有两列,我认为这更像是pythonic

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