python – 从列表中删除字典
发布时间:2020-12-20 12:41:20 所属栏目:Python 来源:网络整理
导读:我有一个CSV文件,我读作每行的字典列表.我想删除列表中具有EmailAddress”的所有条目.我试过了: #!/usr/bin/pythonimport csvdef import_users(location_of_file): with open(location_of_file,'r',newline='',encoding='utf-8-sig') as openfile: reader =
我有一个CSV文件,我读作每行的字典列表.我想删除列表中具有EmailAddress”的所有条目.我试过了:
#!/usr/bin/python import csv def import_users(location_of_file): with open(location_of_file,'r',newline='',encoding='utf-8-sig') as openfile: reader = csv.DictReader(openfile) for row in reader: yield row def save_csv(data,location): with open(location,'w',encoding='utf-8-sig') as file: fieldnames = ['EmailAddress','GivenName','Surname','Company','Department'] writer = csv.DictWriter(file,fieldnames=fieldnames) writer.writeheader() for item in data: writer.writerow(item) if __name__ == '__main__': users = list(import_users('C:TempExample.csv')) for user in users: if user['EmailAddress'] == '': del user else: pass save_csv(users,'C:TempOutput.csv') 但我的结果仍然是没有电子邮件地址的条目.我究竟做错了什么? 解决方法
不要在刺激他们的同时更改列表项目.
代替 for user in users: if user['EmailAddress'] == '': del user else: pass 做 users = filter(lambda user: user['EmailAddress'] != '',users) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |