Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2014 11:57:22

terick
Зарегистрирован: 2014-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание csv

Помогите создать 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()

Офлайн

#2 Апрель 20, 2014 12:49:17

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

Создание csv

Зачем тогда задавать структуру таблицы до формирования данных?

Офлайн

#3 Апрель 20, 2014 13:53:20

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Создание csv

Добавить условие, если ключа нет, то в ячейку пишем пустоту/None



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#4 Апрель 21, 2014 07:13:27

terick
Зарегистрирован: 2014-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание csv

fongostev
Зачем тогда задавать структуру таблицы до формирования данных?
А как лучше сделать ?

ajib6ept
Добавить условие, если ключа нет, то в ячейку пишем пустоту/None
У меня порядка 20 ключей, для каждого мне кажется не очень правильно if писать

Офлайн

#5 Апрель 21, 2014 07:18:45

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

Создание csv

terick
А как лучше сделать ?
Формируете данные, потом смотрите, какие ключи есть и пишите в файл только их.

Отредактировано fongostev (Апрель 21, 2014 07:19:14)

Офлайн

#6 Апрель 21, 2014 11:19:18

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Создание csv

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]
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version