【问题标题】:Python - Extract data from nested dictionary into ExcelPython - 从嵌套字典中提取数据到 Excel
【发布时间】:2021-10-29 08:55:25
【问题描述】:

我有一个嵌套字典,我想做以下事情:

  1. 根据字典名称创建 Excel 工作表(Excel 工作表称为 dict1、dict2 等,基于以下示例)
  2. 在 Excel 工作表中创建与字典匹配的标题 - 所以单元格 A1 = key1,单元格 B1 = key2
  3. 将我在字典中的数据填充到相关列(例如 col A2、A3、A4 等以具有data1data2data3(其余列相同)

输入字典示例:

nested_dict = {'dict_1': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']},
'dict_2': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']}}

Excel 中所需的输出

key1 | key2|key3|
data1| 1   |value1
data2| 2   |value2
data3| 3   |value3

我目前正在使用 openpyxl 来尝试实现这一点,但不完全确定如何正确遍历嵌套字典并访问为每个字典创建工作表,然后重复其余数据。

for k,v in nested_dict.items:
    for sheetName in wb.sheetnames:
        wb.create_sheet(k)
        ws.cell(row=1, column=1).value 
        
wb.save('test.xlsx')  

有人能指出我正确的方向吗?

【问题讨论】:

  • 这和你之前的问题基本一样。看来您甚至都不想学习。

标签: python python-3.x dictionary openpyxl


【解决方案1】:

你可以使用'pandas'包

import pandas as pd
nested_dict = {'dict_1': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']},
               'dict_2': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']}
               }
writer = pd.ExcelWriter('test.xlsx')
for sheet,data in nested_dict.items():
    df = pd.DataFrame(data)
    df.to_excel(writer, sheet_name=sheet,index=False)
writer.save()

【讨论】:

  • 谢谢 - 唯一的问题是它覆盖了我的 excel 文件中的现有工作表。是否有保留现有工作表然后添加 A.B 等工作表?
  • writer = pd.ExcelWriter('test.xlsx',mode='a',engine='openpyxl')
  • 另外,'test.xlsx'文件必须先存在
猜你喜欢
  • 1970-01-01
  • 2021-08-24
  • 2021-02-12
  • 2018-04-20
  • 2021-10-29
  • 2023-03-20
  • 2016-05-15
  • 2021-04-19
  • 1970-01-01
相关资源
最近更新 更多