Python Dict到CSV的Dict,带有定义的标题

Python Dict到CSV的Dict,带有定义的标题,python,python-3.x,pandas,dictionary,export-to-csv,Python,Python 3.x,Pandas,Dictionary,Export To Csv,遵循格言 result = {'Aktie': 'Bayer AG *', 'WKN': 'BAY001', 'Index': 'DAX', 'Branche': 'Chemie / Pharma / Gesundheit', 'RK': '3', 'Link': 'https://www.onvista.de/aktien/Bayer-Aktie-DE000BAY0017', 'Onvistaname': 'Bayer-Aktie-DE000BAY0017', 'Fundamentaldate

遵循格言

result = {'Aktie': 'Bayer AG *', 'WKN': 'BAY001', 'Index': 'DAX', 'Branche': 'Chemie / Pharma / Gesundheit', 'RK': '3', 'Link': 'https://www.onvista.de/aktien/Bayer-Aktie-DE000BAY0017', 'Onvistaname': 'Bayer-Aktie-DE000BAY0017', 'Fundamentaldatenlink': 'https://www.onvista.de/aktien/fundamental/Bayer-Aktie-DE000BAY0017', '2019': {'Gewinn pro Aktie': ['  3,02  '], 'KGV': ['  24,06  '], 'Gewinnwachstum': ['  +73,88%  '], 'Dividende in Euro': ['  2,84  '], 'Dividende in Prozent': ['  2,84  ']}, '2020': {'Gewinn pro Aktie': ['  4,75  '], 'KGV': ['  15,31  '], 'Gewinnwachstum': ['  +43,13%  '], 'Dividende in Euro': ['  3,01  '], 'Dividende in Prozent': ['  3,01  ']}, '2021': {'Gewinn pro Aktie': ['  5,18  '], 'KGV': ['  14,04  '], 'Gewinnwachstum': ['  +23,21%  '], 'Dividende in Euro': ['  3,21  '], 'Dividende in Prozent': ['  3,21  ']}, '2022': {'Gewinn pro Aktie': ['  6,79  '], 'KGV': ['  10,71  '], 'Gewinnwachstum': ['  +27,24%  '], 'Dividende in Euro': ['  3,62  '], 'Dividende in Prozent': ['  3,62  ']}}
应导出为csv

这一次尝试:

keys = result[0].keys()
with open('people.csv', 'w') as output_file:
    dict_writer = csv.DictWriter(output_file, keys)
    dict_writer.writeheader()
    dict_writer.writerows(result)
结果是一个带有标题的csv

Aktie,  WKN,    Index,  Branche,    RK, Link,   Onvistaname,    Fundamentaldatenlink,   2019,   2020,   2021,   2022
dict应根据dict的键导出为csv,并带有标题 例如:

Aktie,  WKN,    Index,  Branche,    RK, Link,   Onvistaname,    Fundamentaldatenlink, 2019 Gewinn pro Aktie, 2019 KGV [...], 2022 Dividende in Prozent
然后,第一行应该是值

输出行标题应该是键的名称(例如2022)和嵌套的键值(例如KGV)

2022公斤

10,71

请注意,从1.0开始,json_normalize将是pandas中的一个“顶级”函数,因此可以在它出现时执行pd.json_normalize


请注意,从1.0开始,json_normalize在pandas中将是一个“顶级”函数,因此可以在它出现时执行pd.json_normalize

您可以检查
pd.DataFrame.from_dict(result)
对我来说很好。
result[0]。keys()
生成一个
KeyError
。结果本身就是一个dict。因此,请尝试使用result.keys()访问这些键。在将值写入之前,您可以将所有值转换为字符串csv@Datanovice抱歉,我仍然在前面的嵌套键下获取所有值集(示例2022)。我的错我需要更好地解释。我需要在行标题下导出值集2,其名称为键和值集1。您可以检查
pd.DataFrame.from_dict(result)
对我来说很好。
result[0]。keys()
生成一个
KeyError
。结果本身就是一个dict。因此,请尝试使用result.keys()访问这些键。在将值写入之前,您可以将所有值转换为字符串csv@Datanovice抱歉,我仍然在前面的嵌套键下获取所有值集(示例2022)。我的错我需要更好地解释。我需要在行标题下导出值集2,名称为键和值集1。是的,这就是解决方案。非常感谢!是的,这就是解决办法。非常感谢!
from pandas.io.json import json_normalize
json_normalize(result).to_csv("file.csv")