在将键值对插入字典之前删除字符

时间:2013-04-20 21:35:28

标签: python python-3.x

我有一个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

1 个答案:

答案 0 :(得分:0)

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

cdata = csv.reader(f, delimiter = ';', quoting = csv.QUOTE_NONNUMERIC)
print dict(cdata)