【发布时间】:2013-11-18 06:10:27
【问题描述】:
我正在使用带有 Mac OS Maverick 的 Python 3.2,我正在尝试获取具有这种格式的 .cvs 文件:
'Lisa plowed ', '1A', 'field', 'field', 'field', 'field', 'field'
'John greased ', '1A', 'axle', 'wheel', 'wheels', 'wheel', 'engine'
'Tracy freed ', '1A', 'animals', 'fish', 'slaves', 'slaves', 'slaves'
'Paul alleged ', '1A', 'truth', 'crime', 'facts', 'infidelity', 'incident'
到字典中,每行中的第一项是键,该行的其余部分是映射到该键的值。 我尝试了不同的方法,最接近的是这段代码,但不幸的是,我还没有:
import csv
data =open('test.csv', encoding = 'utf=8')
reader = csv.reader(data, delimiter=",")
for col in reader:
print(col)
result = {}
for row in reader:
key = row[0]
result[key] = row[1:]
print(result)
我得到的结果只是 {} 就好像字典是空的一样。 我真的很感谢任何帮助,无论是提供新的替代方案,还是将我推荐给我可以找到答案的地方。 非常感谢!
【问题讨论】:
-
附带说明,除非您希望列值是
" '1A'"等,否则您没有正确解析它。如果您的 CSV 使用非标准引号字符、(可能是可选的)多余的初始空格等,您必须指定适当的 dialect parameters。但是您指定的唯一一个是已经使用默认值的那个,delimiter。请改用quotechar="'", skipinitialspace=True。 -
result = {row[0]: row[1:] for row in reader}
-
哇!那是快速和真棒!效果很好,谢谢!
标签: python csv dictionary