Как преобразовать этот список словарей в файл csv? [Python]
У меня есть список словарей, которые выглядят примерно так:
toCSV = [{'name':'bob','age':25,'weight':200},{'name':'jim','age':31,'weight':180}]
Что мне делать, чтобы преобразовать это в файл csv, который выглядит примерно так:
name,age,weight
bob,25,200
jim,31,180
Ответы
Ответ 1
import csv
toCSV = [{'name':'bob','age':25,'weight':200},
{'name':'jim','age':31,'weight':180}]
keys = toCSV[0].keys()
with open('people.csv', 'wb') as output_file:
dict_writer = csv.DictWriter(output_file, keys)
dict_writer.writeheader()
dict_writer.writerows(toCSV)
EDIT: мое предыдущее решение не обрабатывает заказ. Как отметил Wilduck, DictWriter здесь более уместен.
Ответ 2
В модуле csv Python есть DictWriter, который, вероятно, будет полезен.
Ответ 3
это когда у вас есть один список словарей:
import csv
with open('names.csv', 'w') as csvfile:
fieldnames = ['first_name', 'last_name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
Ответ 4
Поскольку @User и @BiXiC попросили помочь с UTF-8 здесь вариант решения от @Matthew. (Мне не разрешено комментировать, поэтому я отвечаю.)
import unicodecsv as csv
toCSV = [{'name':'bob','age':25,'weight':200},
{'name':'jim','age':31,'weight':180}]
keys = toCSV[0].keys()
with open('people.csv', 'wb') as output_file:
dict_writer = csv.DictWriter(output_file, keys)
dict_writer.writeheader()
dict_writer.writerows(toCSV)