通过Python将json数组转化为excel文件
背景
调用第三方能力获取json格式的数据,我需要将至转换为excel格式,以便于进行二次加工。预计基于豆包给的代码,进行微调,最后顺利完成任务。
我的提示词:python 循环列表,列表中的每一个值都是字典。需要将这个列表转化成excel文件(每一个字典都是一行,需要判断字典名是否在表格中存在,存在在对应行和列保存值,不存在就新增一列保存值)
代码
import pandas as pd
from typing import List, Dict, Set
a=[{"id":"1","name":"甲"},{"id":"2","name":"乙"}] #设置json直接复制过来,设置为字典变量
def dict_list_to_excel(dict_list: List[Dict], excel_path: str) -> None:
"""
将字典列表转换为Excel文件,动态处理列(不存在则新增列)
Args:
dict_list: 包含字典的列表(每个字典对应Excel的一行)
excel_path: 输出Excel文件路径(如: result.xlsx)
Returns:
None
"""
# 第一步:收集所有字典的键,确保包含所有可能的列
all_columns: Set[str] = set()
for row_dict in dict_list:
if isinstance(row_dict, dict): # 确保元素是字典
all_columns.update(row_dict.keys())
# 转换为有序列表(保证列顺序稳定)
all_columns = sorted(list(all_columns))
if not all_columns:
print("错误:没有有效字段可生成Excel")
return
# 第二步:构造每行数据(按列顺序填充值,无值则填空)
excel_data = []
for idx, row_dict in enumerate(dict_list):
if not isinstance(row_dict, dict):
print(f"警告:第 {idx+1} 个元素不是字典,已跳过")
continue
# 按列顺序填充当前字典的值
row_data = {}
for col in all_columns:
row_data[col] = row_dict.get(col, "") # 不存在的键填空字符串
excel_data.append(row_data)
# 第三步:生成DataFrame并保存为Excel
try:
df = pd.DataFrame(excel_data, columns=all_columns)
df.to_excel(excel_path, index=False, engine="openpyxl")
print(f"成功生成Excel文件:{excel_path}")
print(f"共生成 {len(all_columns)} 列,{len(excel_data)} 行数据")
except Exception as e:
print(f"保存Excel失败:{str(e)}")
dict_list_to_excel(a, "output.xlsx") #运行函数,将a这个json数组转化成excel发布时间:2026年3月17日 17:59
分类:技术博客
标签:
理论工具
作者:五行缺土
微信扫码接收最新分享: