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

相关推荐
ailitsoft6 小时前
库存管理系统如何记录跨门店调拨后的收货差异?
excel·零售·软件需求
Hello_Pyhx19 小时前
NWinfo 导出 Windows 硬件信息:从 JSON 报告到缺项排查
windows·json
程序员大阳2 天前
副队长JavaScript教程(66)-本地存储实战:待办事项网页的开发
javascript·json·实战·待办事项·本地存储·案例
百事牛科技2 天前
Excel的三种密码:防看、防存、防乱改,各管各的
windows·excel
用户298698530142 天前
React 前端将 Excel 工作表导出为图片的技术实践
javascript·react.js·excel
视觉小萌新3 天前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
用户0332126663673 天前
使用 Python 在 Excel 文档中添加水印
python·excel
翊众建站3 天前
用 JSON-LD 给企业官网做结构化数据:LocalBusiness 与 FAQPage 实践笔记
人工智能·搜索引擎·json
Patrick_Wilson4 天前
读懂一个 Go JSON 处理函数:从输入数据追踪结构体、校验与错误返回
go·json·编程语言