json文件转excel

bash 复制代码
pip install openpyxl
pip install pandas
bash 复制代码
import json
import pandas as pd
import os
from pathlib import Path

def json_to_excel(json_path, excel_path=None):
    """
    将JSON文件转换为Excel文件
    
    参数:
    json_path: JSON文件的路径
    excel_path: 输出Excel文件的路径,默认为与JSON文件同路径同名称,扩展名为.xlsx
    """
    try:
        # 检查JSON文件是否存在
        if not os.path.exists(json_path):
            raise FileNotFoundError(f"文件不存在: {json_path}")
            
        # 如果未指定Excel路径,则使用与JSON相同的路径和名称
        if excel_path is None:
            json_dir = os.path.dirname(json_path)
            json_filename = os.path.splitext(os.path.basename(json_path))[0]
            excel_path = os.path.join(json_dir, f"{json_filename}.xlsx")
        
        # 读取JSON文件
        with open(json_path, 'r', encoding='utf-8') as f:
            data = json.load(f)
        
        # 将JSON数据转换为DataFrame
        # 处理不同结构的JSON数据
        if isinstance(data, list):
            # 如果JSON是列表
            df = pd.DataFrame(data)
        elif isinstance(data, dict):
            # 如果JSON是字典
            # 尝试将字典转换为适合表格形式的数据
            if all(isinstance(v, dict) for v in data.values()):
                # 如果字典的值也是字典,使用pd.DataFrame.from_dict
                df = pd.DataFrame.from_dict(data, orient='index')
            else:
                # 否则转换为单行列
                df = pd.DataFrame(list(data.items()), columns=['Key', 'Value'])
        else:
            raise ValueError("不支持的JSON数据结构")
        
        # 保存为Excel文件
        df.to_excel(excel_path, index=False, engine='openpyxl')
        print(f"转换成功!Excel文件已保存至: {excel_path}")
        return True
        
    except Exception as e:
        print(f"转换失败: {str(e)}")
        return False

if __name__ == "__main__":
    # 指定JSON文件路径
    json_file_path = r"D:\d4\a.json"
    
    # 调用转换函数
    json_to_excel(json_file_path)
    

a.json格式如下:

bash 复制代码
[
    {
        "id": 1,
        "a": "1"
    }
]

生成的excel如下:

相关推荐
Venuslite5 天前
从 Unexpected token < 到 Extra data:一次讲清 JSON 解析错误的排查思路
json
疯狂SQL11 天前
手写高性能在线 JSON 工具|Web Worker 工程化打包 + 语法自动修复 + 多语言代码生成实战
typescript·json·next.js·web worker·前端性能优化·esbuild·源码实战
Non-existent98716 天前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps
Channing Lewis16 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
jarreyer16 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel
chatexcel16 天前
ChatExcel Max使用教程:图片、PDF、网页与复杂Excel的一站式数据分析
数据分析·pdf·excel
cngkqy16 天前
excel从某一列中用match筛选匹配的数据
excel
terry60016 天前
5G视频短信服务商选型全攻略:通道资源、架构能力与成本评估2026最新标准
大数据·人工智能·5g·json·asp.net·信息与通信·数据库架构
qq_5469372716 天前
Excel批量转PDF_Word_图片,支持自动合并报表,效率翻倍。
pdf·word·excel