2013-11-28 2 views
0

Я использую Python 3. У меня есть данные образца в CSV-файл, который я хотел бы преобразовать в словарь:Сохранение данных в формате 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'}] 

так ДИКТ представление хранится в (ул: список ул) для (ключ: значение)?

Кроме того, можно ли использовать следующий выход: [a: {'a.fruit': ['apple', 'grapes', 'pear'], 'a.colour': ['red', ' 'фиолетовый', 'зеленый'], 'a.quantity': [ '2', '4', '5'}]

+0

Пожалуйста, разместите акт который вы получили. – thefourtheye

ответ

2

Вы можете использовать list comprehension и dict 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']} 
+0

@ user3044013 Я обновил свой ответ ссылками на понимание. Пожалуйста, проверьте их и, пожалуйста, подумайте о принятии этого ответа, если это действительно поможет вам http://meta.stackexchange.com/a/5235/235416 – thefourtheye

+0

@ user3044013 Какое содержимое файла? – thefourtheye

Смежные вопросы