Проблемы с _csv.Error: ожидаемая последовательность - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть список словарей Python, которые я пытаюсь записать значения в CSV-файл, но по некоторым причинам я продолжаю получать _csv.Error: последовательность ожидается

Вот пример кода:

import csv
import os, sys

headers = ['id', 'Info']
data = [{'id': 1, 'Info': 'Example 1'}, {'id': 2, 'Info':'Example 2'}]

with open('all_csv.csv', 'wt') as f:
   writer = csv.writer(f, delimiter=',')
   writer.writerow(headers)
   for each in data:
      writer.writerow(each.values())

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 06 сентября 2018

в Python 3, values() больше не возвращает list. Вы должны сначала преобразовать это:

writer.writerow(list(each.values()))

обратите внимание, что словари не упорядочены, поэтому порядок столбцов не определен (если вы не используете Python 3.6 или выше), поэтому, возможно, вы захотите использовать объект csv.DictWriter вместо этого, чтобы избежать заголовка не соответствует вашим строкам.

Вот как я это сделаю, используя csv.DictWriter:

import csv

data = [{'id': 1, 'Info': 'Example 1'}, {'id': 2, 'Info':'Example 2'}]

with open('all_csv.csv', 'w', newline="") as f:
   writer = csv.DictWriter(f, fieldnames = data[0], delimiter=',')
   writer.writeheader()
   writer.writerows(data)

вывод:

Info,id
Example 1,1
Example 2,2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...