【发布时间】:2019-11-09 09:11:14
【问题描述】:
我有以下名为 tes 的列表,我需要将其存储为 csv 格式。
tes=[('branch=cse\\',{'name':['abc'],'sex':['male']}),('branch=ece\\',{'name':['def']})]
当列表包含所有值时,我的代码运行良好,但如果列表中缺少某些值,我会得到 KeyError。我在下面附上了我的代码。谁能给我一个更好的选择?
import csv
tes=[('branch=cse\\',{'name':['abc'],'sex':['male']}),('branch=ece\\',{'name':['def']})]
with open('check.csv','w') as csvfile:
fieldnames = ['givenName','sex']
writer=csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for i in tes:
writer.writerow({'givenName': i[1]['name'], 'sex': i[1]['sex']})
【问题讨论】:
-
i[1].get('sex', "default value")- 如果没有['sex']则返回"default value"而不是KeyError -
@furas 我应该在哪里提到这个?你能详细说明一下吗?
-
writer.writerow({'givenName': i[1].get('name', 'unknown'), 'sex': i[1].get('sex', 'male?')}) -
@furas .get 方法有效。非常感谢 :)
标签: python python-2.7 list csv export-to-csv