首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中将多个不同键值的字典导出到一个csv文件中?

如何在Python中将多个不同键值的字典导出到一个csv文件中?
EN

Stack Overflow用户
提问于 2019-06-18 02:18:28
回答 1查看 238关注 0票数 0

我正在尝试将具有不同字段名的多个字典写入到一个csv文件中。我希望将所有字典的键作为头文件放在csv文件的顶部,并将它们的所有值放在每行中。但是我的代码没有做到这一点,它将每个字典的键添加到单独的行中,并将其值添加到下面的行中。

代码语言:javascript
复制
from bs4 import BeautifulSoup
import os
import re
import csv

for j in range(1,39):
    for i in rabge(1,10):


### calculate super_dict for each html pages
            super_dict.update(social_urls)
            super_dict.update(metadata)
            super_dict.update(project_name)
            super_dict.update(bc_dict)
            super_dict.update(ind_dict)
            super_dict.update(pos_dict)
            super_dict.update(likes_dict)
            super_dict.update(memprof_dict)
            super_dict.update(video_link)
            super_dict.update(details_dict) 
            with open('output.csv', 'a') as csvfile:`
                fieldnames = super_dict.keys()
                writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
                writer.writeheader()
                writer.writerow(super_dict)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-18 15:39:36

问题是代码只编写一个字典,DictWriter将其视为一行。一种可行的方法是从所有dict的键创建字段名,然后将每个dict写成单独的行。

如下所示:

代码语言:javascript
复制
dicts = [social_urls, metadata, ...]
fieldnames = set()
# Update fieldnames with each dict's keys
# Use a set to filter duplicates.
fieldnames.update(*(d.keys() for d in dicts))
with open(myfile.csv, 'a', newline='') as f:
    writer= csv.DictWriter(f, fieldnames=fieldnames)
    for d in dicts:
        writer.writerow(d)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56636821

复制
相关文章

相似问题

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