Найти - Пользователи
Полная версия: Создание csv
Начало » Python для новичков » Создание csv
1
terick
Помогите создать csv , проблема в том, что данных может не быть некоторых ключей

import csv
#   Есть list c данными для создания csv 
data = [
        {"name" : "Имя", "address" : "ул. Улица д. 1", "site" : "site.ru", "description" :  "Описание"},
        {"name" : "Имя1", "site" : "site1.ru", "description1" :  "Описание"}
        ]
zag = ["name", "address", "site", "description"]
file = open("file.txt", "w")
writer = csv.writer(file,delimiter = ";")
# Создаем заголовки
writer.writerow(zag)    
#
#    Тут цикл который формирует данные 
#
file.close()
fongostev
Зачем тогда задавать структуру таблицы до формирования данных?
ajib6ept
Добавить условие, если ключа нет, то в ячейку пишем пустоту/None
terick
fongostev
Зачем тогда задавать структуру таблицы до формирования данных?
А как лучше сделать ?

ajib6ept
Добавить условие, если ключа нет, то в ячейку пишем пустоту/None
У меня порядка 20 ключей, для каждого мне кажется не очень правильно if писать
fongostev
terick
А как лучше сделать ?
Формируете данные, потом смотрите, какие ключи есть и пишите в файл только их.
py.user.next
terick
#   Есть list c данными для создания csv 
data = [
        {"name" : "Имя", "address" : "ул. Улица д. 1", "site" : "site.ru", "description" :  "Описание"},
        {"name" : "Имя1", "site" : "site1.ru", "description1" :  "Описание"}
        ]
это не подходит
ключи словаря находятся в произвольном порядке, а в csv должен идти определённый порядок
эти данные надо перевести в список, а для отсутствующих элементов можно применить dict.get()

>>> d = {'a': 1, 'b': 2}
>>> lst = [d.get(i, None) for i in 'abc']
>>> lst
[1, 2, None]
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB