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")