如何提取~/json-reports/下JSON内容及文件名字段导出为Excel/CSV
实现JSON批量合并提取字段导出CSV/Excel方案
前置依赖
需要先安装Python的两个第三方库:
pip install pandas openpyxl
完整实现代码
import os import json import pandas as pd # 配置参数 JSON_DIR = os.path.expanduser("~/json-reports/") EXPORT_CSV_PATH = "./output.csv" EXPORT_EXCEL_PATH = "./output.xlsx" all_data = [] # 遍历目录下所有JSON文件 for filename in os.listdir(JSON_DIR): if not filename.endswith(".json"): continue # 提取文件名中的port和user-id file_prefix = filename.rsplit(".", 1)[0] port, user_id = file_prefix.split("-", 1) # 读取JSON文件内容 file_path = os.path.join(JSON_DIR, filename) with open(file_path, "r", encoding="utf-8") as f: json_content = json.load(f) # 给每条记录增加提取的字段 for item in json_content: item["port"] = port item["user-id"] = user_id all_data.append(item) # 转换为DataFrame df = pd.DataFrame(all_data) # 导出为CSV df.to_csv(EXPORT_CSV_PATH, index=False, encoding="utf-8-sig") # 导出为Excel(二选一即可) df.to_excel(EXPORT_EXCEL_PATH, index=False) print(f"导出完成,共处理{len(all_data)}条记录")
代码说明
- 文件名分割采用
split("-", 1)的写法,避免user-id本身包含-的场景下分割错误 - CSV导出使用
utf-8-sig编码,兼容Windows下Excel打开不乱码 - 如果你只需要导出其中一种格式,删除不需要的导出代码行即可
- 如果你的JSON文件存在非标准格式,可在读取JSON的部分增加异常捕获逻辑,跳过损坏的文件
内容的提问来源于stack exchange,提问作者user4948798
相关产品推荐
相关产品推荐

