Как с помощью csv записать в файл список словарей, в которых иногда есть список?Python

Программы на Python
Ответить
Anonymous
 Как с помощью csv записать в файл список словарей, в которых иногда есть список?

Сообщение Anonymous »

Мне нужно создать список из CSV-файла (это данные — это информация о фильмах, такая как название, режиссер и актеры. Режиссеры и актеры — это список, а другие данные — просто строка), он выглядит следующим образом:

Код: Выделить всё

with open('filmy.csv', mode='r',encoding='UTF-8') as file:
csv_reader = csv.DictReader(file)

data_list = []  # Main list
for row in csv_reader:
data_list.append(row)
for d in data_list:
if d['Aktorzy']:  #Aktorzy == Actors
d['Aktorzy'] = d['Aktorzy'].split('; ')
if d['Reżyser']:  #Reżyser == Directors
d['Reżyser'] = d['Reżyser'].split('; ')

file.close()
Теперь, когда я закрываю файл, мне нужно обновить файл «filmy.csv», но что бы я ни делал, я не могу найти решение, как сохранить эти списки актеров такими, какими они были при открытии файла. Вот мой текущий код для этого:

Код: Выделить всё

    keys = data_list[0].keys()

with open('filmy.csv', 'w', newline='', encoding='UTF-8') as output_file:
dict_writer = csv.DictWriter(output_file, keys)
dict_writer.writeheader()
dict_writer.writerows(data_list)
app.quit()
Вот как меняется мой CSV-файл после открытия и закрытия программы:
Как это происходит сначала (и как должно быть):
Изображение

Как это происходит после однократного закрытия:
Изображение

Как это будет позже:
Изображение

Мне нужно использовать импорт csv, так что если без панд невозможно обойтись, подскажите.
Я не знаю, как сюда добавить фото, поэтому вот ссылка на Google Фото: https://drive.google.com/file/d/1eeD3mt ... sp=sharing

Подробнее здесь: https://stackoverflow.com/questions/798 ... -have-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»