【问题标题】:Storing csv data in dictionary将csv数据存储在字典中
【发布时间】:2013-11-28 02:10:22
【问题描述】:

我正在使用 python 3。我在 csv 文件中有示例数据,我想将其转换为字典:

a.csv 中的数据:

a.fruit,a.colour,a.quantity 
apple,red,2 
grapes,purple,4
pear,green,5

我有以下代码:

sample = 'samples.csv'
file_name = open(sample,'r')

reader = csv.DictReader(file_name)
for row in reader:
    print(row)  

当我运行代码时,我得到以下输出:

['a.fruit':'apple','a.colour':'red','a.quantity':'2']
['a.fruit':'grapes','a.colour':'purple','a.quantity':'4']
['a.fruit':'pear','a.colour':'green','a.quantity':'5']

我有没有得到以下字典:

[{'a.fruit':['apple','grapes','pear'],'a.colour':['red','purple','green'],'a.quantity':['2','4','5'}]

所以存储在 (str: list of str) for (key:value) 中的 dict 表示?

另外,是否可以输出以下内容: [a : {'a.fruit':['apple','grapes','pear'],'a.colour':['red','purple','green'],'a.quantity': ['2','4','5'}]

【问题讨论】:

  • 请发布你得到的实际输出。

标签: python csv python-3.x dictionary


【解决方案1】:

你可以像这样使用list comprehensiondict comprehension

dicts = [row for row in reader]
result = {k:[d[k] for d in dicts] for k in dicts[0].keys()}
print(result)

输出

{'a.fruit': ['apple', 'grapes', 'pear'], 'a.colour': ['red', 'purple', 'green'], 'a.quantity ': ['2 ', '4', '5']}

【讨论】:

  • @user3044013 我已经用理解的链接更新了我的答案。请检查他们并考虑接受这个答案,如果它真的对你有帮助meta.stackexchange.com/a/5235/235416
  • @user3044013 文件内容是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-08
  • 2014-09-17
  • 2011-02-22
  • 2013-05-06
  • 2020-01-26
  • 1970-01-01
相关资源
最近更新 更多