Мне сложно понять, как написать список dicts для csv, в котором все мои значения находятся в отдельных столбцах. Вопросы, подобные этому здесь, на SO, мне не помогли. Я использовал DictWriter, но не могу понять, как кормить dict.values () без поля «ошибка x» не в полевых именах ».Напишите список dicts для csv со значениями в отдельных столбцах
.....
dicts = [
{'sku': 'xxxx1', 'model': '1234-56K', 'price': '$xxx.xx', 'name': 'item_name_here', 'stock': 'True'},
{'sku': 'xxxx2', 'model': '1234-56K', 'price': '$xxx.xx', 'name': 'item_name_here', 'stock': 'False'}
]
csv_file = open('file.csv','wb')
fieldnames = ('name', 'price', 'stock', 'model', 'sku')
csvwriter = csv.DictWriter(csv_file, fieldnames, extrasaction='raise', dialect='excel')
csvwriter.writeheader()
csvwriter.writerows(dicts)
return csv_file
.....
Это возвращает мои значения в одном столбце, но когда я перебирать значения dicts в списке он просто разбивает все значения (как строки) в 's, t, r, i, n, g,' все еще помещают их в первый столбец.
, которые работали для меня ... есть еще код, который вы не включили ? – mlnyc
Вы используете python3 или python2? Я просто попробовал свой код в python2.7, и он, похоже, работал нормально. – zzzirk
Обратите внимание, что путь столбцов в программе, отличной от Excel, отличается от того, как записывается файл csv. У меня возникли очень неприятные проблемы с использованием LibreOffice's Calc для отображения файла csv, который я написал с помощью Python, но проблема была разделителем, который программа использовала для разбиения данных на столбцы. –