[英]How to create a dictionary from a comma-separated values?
我需要从包含逗号分隔值的文本文件中创建一个字典。
到目前为止,我写了这么多。
import csv
pick = open('a.txt','r')
read = csv.reader(pick)
reviews = {}
文本文件中的示例数据如下所示
Peter,Gravity,4.5,For a Few Dollars More,1.0,Prometheus,4.0
Jack Holmes,Lawrence of Arabia,3.0,Gravity,3.5,The Godfather,1.5,Prometheus,5.0,The Guns of Navarone,3.0
我想创建一个看起来像这样的字典
{'Peter': {'Gravity': 4.5,
'For a Few Dollars More': 1.0,
'Prometheus': 4.0},
'Jack Holmes': {'Lawrence of Arabia': 3.0,
'Gravity': 3.5,
'The Godfather': 1.5,
'Prometheus': 5.0,
'The Guns of Navarone': 3.0,}
}
我查看了这些页面: this this this this但无助于回答我的问题。
你能给我一些关于如何做到这一点的提示或想法吗?
此解决方案使用zip
来配对内部字典的键和值。
d = {}
with open('a.txt') as f:
for line in csv.reader(f):
it = iter(line)
key = next(it)
d[key] = dict(zip(it, it))
如果您需要float
值,您可以执行类似的操作
d[key] = dict((a, float(b)) for a, b in zip(it, it))
这是一个不太好但简单的解决方案:
import csv
mydict = {}
with open('file.csv', mode='r') as infile:
reader = csv.reader(infile)
mylist = list(reader)
for i in range(len(mylist)):
z = iter(mylist[i][1:])
mydict[mylist[i][0]] = dict(zip(z, z))
print(mydict)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.