Экспорт списка Python в CSV - PullRequest
0 голосов
/ 27 июня 2019

У меня есть список ниже, называемый 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']})

1 Ответ

1 голос
/ 01 июля 2019

Вы можете использовать i[1].get('sex', "default value").Если ключа ['sex'] нет, он возвращает "default value" вместо KeyError

writer.writerow({'givenName': i[1].get('name', 'unknown'), 'sex': i[1].get('sex', 'male?')})
...