2016-11-30 40 views
0

我有如下一个CSV文件:如何csvfile读入字典格式

a,green 
a,red 
a,blue 
b,white 
b,black 
b,brown 

我想把它读入Python字典如下

{'a':{'green','red','blue'},'b':{'white','black','brown'}} 

我该怎么办?请帮助我

+5

这似乎是一个非常简单的'csv'和'collections.defaultdict'应用程序。你有什么特别的问题吗?您能向我们展示给您带来麻烦的代码,以便我们可以定制我们的建议来帮助引导您的理解,而不仅仅是给您一些代码? – mgilson

+0

你可能需要: https://docs.python.org/2/library/csv.html 然后做一个循环来附加你的字典。然后请张贴一些代码! – Dadep

回答

0

我会假设你想与价值观的每个键

{'a':['green','red','blue'],'b':['white','black','brown']}

列表的字典如果是这样,可能的快速的解决方法可能是这样的

import csv 

# Get a all the rows in the format [[k, v], ...] 
rows = list(csv.reader(open('file_path_here', 'r'))) 
# Get all the unique keys 
keys = set(r[0] for r in rows) 

# Get a list of values for the given key 
def get_values_list(key, _rows): 
    return [r[1] for r in _rows if r[0] == key] 

# Generate the dict 
keys_dict = dict((k, get_values_list(k, rows)) for k in keys) 

print keys_dict 

但如果你花一些时间在这个方面,我很确定这个解决方案有很大的改进空间。