用Python编写多个字典到CSV

2024-04-23 07:39:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将多个字典写入一个csv文件,其中头(key)只写入一次,而行(值)则基于该键写入。我可以用两本字典来解决这个问题,但是如果我得到了多个需要编写的词典呢?在

我是流式tweets,它被转换成json,所以我试图以一个CSV文件结尾,该文件按每个json键排序。下面是我要做什么的更详细的解释(Writing multiple JSON to CSV in Python - Dictionary to CSV) 下面是我试图得到的结果,但有数千行潜在的数据(如果可能,最好按键排序):

Table

以下是两本字典的基本代码:

import csv

my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4', 'key5': 'value5', 'key6': 'value6', 'key7': 'value7'}
my_dict2 = {'key1': 'value1A', 'key2': 'value2A', 'key3': 'value3A', 'key4': 'value4A', 'key5': 'value5A', 'key6': 'value6A', 'key7': 'value7A'}

with open('mycsvfile.csv', 'wb') as f:
    w = csv.DictWriter(f, my_dict.keys())
    w.writeheader()
    w.writerow(my_dict)
    if my_dict.keys() == my_dict2.keys():
        w.writerow(my_dict2)

print my_dict

p.S。 我是个乞丐!在


Tags: 文件csvtojson字典排序mykeys
1条回答
网友
1楼 · 发布于 2024-04-23 07:39:07

你可以把多个dict放在一个列表中。然后迭代该列表,只写键匹配的行。像这样:

keys = ['key1', 'key2', 'key3', 'key4', 'key5'] # and so forth..

dictionaries = [my_dict, my_dict2] # Just an example, you probably build this list while you stream the tweets.

with open('mycsvfile.csv', 'wb') as f:
    w = csv.DictWriter(f, my_dict.keys())
    w.writeheader()
    for d in [x for x in dictionaries if x.keys() == keys]: # only matching keys.
       w.writerow(d)

相关问题 更多 >