如何将CSV数据转换成字典

2024-04-25 12:32:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CSV文件,我通过以下代码打开:

open(file,"r")

当我读取文件时,我得到了输出:

^{pr2}$

我想要这样的东西:

{hello:['jelly','red'], hi:['belly','black'], 'bye':['heli','blue']}

但我不知道怎么做


Tags: 文件csv代码helloblueredopenhi
3条回答
yourHash = {}

with open(yourFile, 'r') as inFile:
    for line in inFile:
        line = line.rstrip().split(',')
        yourHash[line[0]] = line[1:]

这假设每个键对一行是唯一的。否则,必须将其修改为:

^{pr2}$

当然,您可以使用csv,但我认为肯定有人会发布该消息,所以我给出了一种替代方法。祝你好运!在

csv = [
  ['hello', 'hi', 'bye'],
  ['jelly', 'belly', 'heli'],
  ['red', 'black', 'blue'],
]

csv = zip(*csv)

result = {}
for row in csv:
  result[row[0]] = row[1:]

您可以使用collections.defaultdictcsv.DictReader

>>> import csv
>>> from collections import defaultdict
>>> with open('abc.csv') as f:
    reader = csv.DictReader(f)
    d = defaultdict(list)
    for row in reader:
        for k, v in row.items():
           d[k].append(v)
...            
>>> d
defaultdict(<type 'list'>,
{'hi': ['belly', 'black'],
 'bye': ['heli', 'blue'],
 'hello': ['jelly', 'red']})

相关问题 更多 >