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如下:

相关推荐
ChoSeitaku7 小时前
NO.4|protobuf网络版通讯录|httplib|JSON、XML、ProtoBuf对比
xml·json
青衫客368 小时前
浅谈 Java 后端对象映射:从 JSON → VO → Entity 的原理与实践
java·json
qqxhb16 小时前
11|结构化输出:为什么 JSON 能让系统更稳定
json·ai编程·结构化·规范模板
开开心心就好1 天前
绿色版PDF多功能工具,支持编辑转换
人工智能·windows·pdf·ocr·excel·语音识别·harmonyos
小黑要努力1 天前
json-c安装以及amixer使用
linux·运维·json
优选资源分享1 天前
资条生成器 V1.3 - 财务 HR 专属 Excel 工具
excel·实用工具
m0_502724951 天前
vue3在线预览excel表格
javascript·vue.js·excel
听风者一号1 天前
cssMoudle生成器
前端·javascript·json
Java小王子呀1 天前
JAVA 导出Excel中添加下拉框用POI
java·excel
傻啦嘿哟2 天前
Python 操作 Excel 条件格式指南
开发语言·python·excel