2016-11-30 51 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 

但如果你花一些時間在這個方面,我很確定這個解決方案有很大的改進空間。