从csv文件创建字典对象列表



我正试图从类似于下面的csv文件创建一个字典列表

name,age,gender  
jack,20,male  
rose,18,female 

这样字典就能读取

a= [{'name':'jack', 'age':20, 'gender':'male'}, {'name':'rose', 'age':18, 'gender':'female'}]

但是,我不允许使用dictReader或任何类型的阅读器(也不允许使用"with"(。如何使用最基本的语句来完成此操作?

读取第一行以构建键列表,然后遍历其余行以分配值。使用strip删除换行符和任何其他悬空空白,使用split(",")拆分每一行。

csv = open("titanic.txt")
keys = next(csv).strip().split(",")
print([{k: v for k, v in zip(keys, row.strip().split(","))} for row in csv])
csv.close()
[{'name': 'jack', 'age': '20', 'gender': 'male'}, {'name': 'rose', 'age': '18', 'gender': 'female'}]

等效地,与csv.DictReader:

from csv import DictReader
csv = open("titanic.txt")
print(list(DictReader(csv)))
csv.close()

最新更新