首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字典列表写入csv,其中值在单独的列中

将字典列表写入csv,其中值在单独的列中
EN

Stack Overflow用户
提问于 2013-10-04 03:50:04
回答 2查看 793关注 0票数 2

我很难理解如何将所有值都在单独列中的字典列表写到csv中。在这里类似的问题并没有帮助我理解。我一直在使用字段,但我想不出如何在不出现“DictWriter x not in fieldname”错误的情况下提供dict.values()函数。

.

代码语言:javascript
复制
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

.

这将返回单列中的值,但当我迭代列表中的字典的值时,它只是将所有值(字符串形式)拆分为's,t,r,i,n,g‘,仍然将它们放在第一列中。

EN

回答 2

Stack Overflow用户

发布于 2013-10-04 04:13:12

来自csv.DictWriter()的文档

如果传递给writerow()方法的字典包含在字段名中找不到的键,则可选的extrasaction参数指示要采取的操作。如果它被设置为“提升”,则会引发ValueError。如果将其设置为'ignore',则忽略字典中的多余值。

如果这是您收到的错误,请尝试:

csv.DictWriter(csv_file, fieldnames, extrasaction='ignore', dialect='excel')

票数 1
EN

Stack Overflow用户

发布于 2013-10-04 04:17:05

嘿,这是我为Python2.7写的

此函数用于获取字典列表并输出csv。它还包括在fieldNames、defaultFieldValues、sortField中设置字段顺序的选项,以及移除重复项的选项

https://gist.github.com/brendancol/6816393

代码语言:javascript
复制
def write_csv(outputRowDictionaries, outputFile, fieldNames=None, defaultFieldValue='', removeDuplicates=False, sortField=None):
....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19168010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档