我正试图从类似于下面的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()