繁体   English   中英

如何从逗号分隔值创建字典?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM