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

相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ3 小时前
java实现excel导入、下载模板方法
java·开发语言·excel
lifejump12 小时前
JSON技术解析
json
qq_5469372717 小时前
office和WPS平替软件,可以打开Word_Excel_PPT
word·excel·wps
Teable任意门互动17 小时前
拆解 Teable 背后研发主体,开源多维表格平台实力与落地案例
开发语言·开源·excel·飞书·开源软件
Cloud_Shy61817 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十二章 用户定义函数 下篇)
python·plotly·数据分析·excel·numpy·pandas
NiceCloud喜云1 天前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
Cloud_Shy6182 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十二章 用户定义函数 中篇)
python·数据分析·excel·pandas
udc小白2 天前
Excel实现LSTM示例
人工智能·深度学习·神经网络·机器学习·excel·lstm
码银2 天前
在若依框架中,使用easyExcel完成动态列导出
java·excel·ruoyi