2017-05-31 83 views
-1

我想从csv文件导入。将标签分隔的csv文件导入到词典列表

task_name time_spent notes date task_number 

Worked on hotfrog. 45 Hotfrog started glitching so I moved on to something else. 01/25/2017 02:25 1 

falkd 3 adlskfj 01/01/2005 09:40 2 

,并把它变成一个清单,它内部的词典看起来像这样:`

self.example_dict_list = 

[{'task_name': 'Worked on hotfrog', 'time_spent': '45', 'notes': 'Hotfrog started glitching so I moved on to something else', 'date': '01/25/2017 02:25', 'task_number': '1'}, {'task_name': 'falkd', 'time_spent': '3', 'notes': 'adlskfj', 'date': '01/01/2005 09:40', 'task_number': '2'}] 
+0

堆栈溢出不是一个代码写入服务。我们很乐意提供帮助,但您希望先尝试自己弄清楚。你试图做什么? –

+1

你的帖子没有意义,“time_spent”来自哪里? “notes”来自哪里? –

+0

我很抱歉我会修复它。对于肯怀特,我一直在尝试一个小时才能完成这项工作。 – Chris

回答

1

这应该工作,我做了一个小CSV文件,它看起来就像这样:

task_name time_spent notes date task_number 
worked on blah 45 glitching and stuff 1/1/15 2 
stuff 40 stuff happened 2/3/16 5 

然后将它转换为一个列表你应该这样做:

import csv 

f = 'path_to_file.csv' 

with open(f, 'r') as fin: 
    reader = csv.reader(fin) 
    headers = reader.next() 
    dict_list = [] 
    for line in reader: 
     dict_list.append(dict(zip(headers, line))) 

dict_list 

[{'date': '1/1/15', 
    'notes': 'glitching and stuff', 
    'task_name': 'worked on blah', 
    'task_number': '2', 
    'time_spent': '45'}, 
{'date': '2/3/16', 
    'notes': 'stuff happened', 
    'task_name': 'stuff', 
    'task_number': '5', 
    'time_spent': '40'}] 
+0

感谢您的帮助。它返回这个错误,虽然... AttributeError:'_csv.reader'对象没有'next'属性 – Chris

+1

我假设你在Python 3中。将该行更改为'headers = next(reader)' –

+0

它没有正确返回。这是它提供的:'[{},{'task_name \ ttime_spent \ tnotes \ tdate \ ttask_number':'Worked on hotfrog。\ t45 \ tHotfrog开始出现故障,所以我转向其他东西。\ t01/25/2017 02 :25't1'},{},{'task_name \ ttime_spent \ tnotes \ tdate \ ttask_number':'falkd \ t3 \ tadlskfj \ t01/01/2005 09:40 \ t2'},{}] ' – Chris