如何将含PO编号的两个字典数据合并写入Excel表格?
合并字典并写入Excel的实现方案
修正字典语法
你给出的字典示例存在Python语法错误,正确格式如下:
DictionaryA = {"PO_1111": "John Doe", "PO_2222": "Jane Doe"} DictionaryB = {"PO_1111": {"sku_A": 1}, "PO_2222": {"sku_A": 1, "sku_B": 3}}
方法一:使用pandas库(推荐)
pandas能快速处理结构化数据并写入Excel,步骤如下:
- 安装依赖库:
pip install pandas openpyxl
- 代码实现:
import pandas as pd # 定义修正后的字典 dict_a = {"PO_1111": "John Doe", "PO_2222": "Jane Doe"} dict_b = {"PO_1111": {"sku_A": 1}, "PO_2222": {"sku_A": 1, "sku_B": 3}} # 构造统一格式的数据列表 data_rows = [] for po_num, customer_name in dict_a.items(): sku_info = dict_b.get(po_num, {}) for sku, qty in sku_info.items(): data_rows.append({ "PO编号": po_num, "客户名称": customer_name, "SKU编号": sku, "数量": qty }) # 转为DataFrame并写入Excel result_df = pd.DataFrame(data_rows) result_df.to_excel("PO合并数据.xlsx", index=False, engine="openpyxl")
方法二:使用openpyxl库(手动操作单元格)
若不想依赖pandas,可直接用openpyxl操作Excel:
- 安装依赖库:
pip install openpyxl
- 代码实现:
from openpyxl import Workbook # 定义修正后的字典 dict_a = {"PO_1111": "John Doe", "PO_2222": "Jane Doe"} dict_b = {"PO_1111": {"sku_A": 1}, "PO_2222": {"sku_A": 1, "sku_B": 3}} # 创建工作簿和工作表 wb = Workbook() ws = wb.active # 写入表头 ws.append(["PO编号", "客户名称", "SKU编号", "数量"]) # 填充数据行 for po_num, customer_name in dict_a.items(): sku_info = dict_b.get(po_num, {}) for sku, qty in sku_info.items(): ws.append([po_num, customer_name, sku, qty]) # 保存文件 wb.save("PO合并数据.xlsx")
两种方法生成的Excel表格结构一致,内容如下:
| PO编号 | 客户名称 | SKU编号 | 数量 |
|---|---|---|---|
| PO_1111 | John Doe | sku_A | 1 |
| PO_2222 | Jane Doe | sku_A | 1 |
| PO_2222 | Jane Doe | sku_B | 3 |
内容的提问来源于stack exchange,提问作者nesteddictionary
相关产品推荐
相关产品推荐

