У меня есть файл CSV, который я читал как список словарей для каждой строки. Я хочу удалить все записи в списке с адресом электронной почты ''
. Я пробовал:Удаление словаря из списка
#!/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', newline='', 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:\Temp\Example.csv'))
for user in users:
if user['EmailAddress'] == '':
del user
else:
pass
save_csv(users, 'C:\Temp\Output.csv')
Но мои результаты по-прежнему имеют записи без адреса электронной почты. Что я делаю не так?
'дель user' * не * удалить элемент из списка, и вы не должны удалять элементы из списков, а итерацию над ними – jonrsharpe