Я получил список словарей разной длины и даже разных пар (key: values)
. Например:
[
{'key1': 'value1', 'key3':'value3'},
{'key1': 'someValue', 'key2':'value2', 'key3':'value3'},
{'anotherKey': 'anotherValue', 'key1': 'value1', 'key2':'value2'},
{'anotherKey': 'anotherValue', 'anotherKey1': 'anotherValue1', 'key1': 'value1', 'key2':'value2', 'key3':'value3'},
]
Мне нужно создать файл CSV
со всеми ключами в качестве заголовков и значений. Если ключ отсутствует в текущем словаре, установите значение по умолчанию (например, «-»). Пример CSV
из примера должен выглядеть следующим образом:
![enter image description here](https://i.stack.imgur.com/slEQr.png)
Я пытаюсь этот код для моего списка словарей, но он возвращает ошибку:
listOfDicts = [
{'key1': 'value1', 'key3':'value3'},
{'key1': 'someValue', 'key2':'value2', 'key3':'value3'},
{'anotherKey': 'anotherValue', 'key1': 'value1', 'key2':'value2'},
{'anotherKey': 'anotherValue', 'anotherKey1': 'anotherValue1', 'key1': 'value1', 'key2':'value2', 'key3':'value3'},
]
keys = listOfDicts[0].keys()
with open('test.csv', 'a') as output_file:
dict_writer = csv.DictWriter(output_file, fieldnames=keys, delimiter='@')
dict_writer.writeheader()
dict_writer.writerows(listOfDicts)
ОШИБКА:
ValueError: dict contains fields not in fieldnames: 'key2'
Как я могу добавить все уникальные ключи в качестве заголовков для CSV и заполнить их значения ключом?