Дано:Python: Самый чистый способ писать кортежи как строки DictWriter?
with open('results.csv', 'wb') as csvfile:
fieldnames = ['Name', 'Address', '#Reviews']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow(row)
И список кортежей, каждый из которых содержит имя, адрес и #reviews например
[('Name2', 'Main St', 2), ('Name2', 'The Hill', 7), ('Name1', 'The Square', 14)]
Я пытаюсь написать каждый кортеж в виде строки в формате CSV, используя writer.writerow()
. Я мог бы создать Dict для каждого кортежа, таким образом:
In [95]: for tup in z:
....: row = {"Name": tup[0], "Address": tup[1], "#Reviews": tup[2]}
....: print row
Но (я) это запутанное и что еще более важно (б) порядок теряется в создании Dict, и порядок не будет совпадать с fieldnames
.
Я мог бы использовать OrderedDict()
, но снова это кажется немного запутанным.
Что является более аккуратным/более коротким способом достижения этого?
где находится ряд? –
извините, * row * будет представлять собой dict, который я ищу для создания из каждого кортежа/fieldNames combo – Pyderman
да, но как это выглядит, вам не нужен DictWriter, если у вас уже есть итерабельность итераций –