You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python合并198个同结构国家API JSON并转CSV?

合并多JSON文件并转CSV的Python方案

下面分步骤实现你的需求,包括合并已下载的JSON文件,以及直接从API获取并完成合并转换两种方式:

一、合并已下载的JSON文件

假设所有data_COU-XXXX.json文件都在当前工作目录下,执行以下代码即可合并成一个有效的JSON数组:

import json
import os

all_data = []
# 遍历目录下的目标JSON文件
for file_name in os.listdir('.'):
    if file_name.startswith('data_COU-') and file_name.endswith('.json'):
        with open(file_name, 'r', encoding='utf-8') as f:
            country_data = json.load(f)
            all_data.append(country_data)

# 保存合并后的JSON
with open('merged_countries.json', 'w', encoding='utf-8') as f:
    json.dump(all_data, f, ensure_ascii=False, indent=4)

二、将合并后的JSON转为CSV

用pandas库可以快速完成格式转换,先确保安装了pandas(执行pip install pandas),再运行以下代码:

import pandas as pd
import json

# 读取合并后的JSON
with open('merged_countries.json', 'r', encoding='utf-8') as f:
    merged_data = json.load(f)

# 转为DataFrame并保存为CSV
df = pd.DataFrame(merged_data)
df.to_csv('countries_data.csv', index=False, encoding='utf-8-sig')

三、优化方案:直接从API获取+合并+转换(无需逐个下载文件)

如果不想先下载所有JSON文件,可以修改原代码,一步完成数据获取、合并和格式转换,节省磁盘空间和操作步骤:

import requests
import json
import pandas as pd

url_base = "https://zerotracker.net/api/v1/countries/{}"
codes = [f"COU-{i:04d}" for i in range(1, 199)]

all_countries = []

for code in codes:
    url = url_base.format(code)
    print(f"处理 {code}...")
    try:
        resp = requests.get(url)
        resp.raise_for_status()  # 捕获请求错误
        all_countries.append(resp.json())
    except Exception as e:
        print(f"{code} 数据获取失败:{str(e)}")

# 保存合并JSON
with open('merged_countries.json', 'w', encoding='utf-8') as f:
    json.dump(all_countries, f, ensure_ascii=False, indent=4)

# 转CSV
pd.DataFrame(all_countries).to_csv('countries_data.csv', index=False, encoding='utf-8-sig')

print("所有操作完成")

关键提示

  • 确保每个JSON文件的字段结构完全一致,否则CSV转换时可能出现字段错位或缺失。
  • 使用utf-8-sig编码保存CSV,能避免Excel打开时的中文乱码问题。
  • 异常处理部分可以根据需要调整,比如跳过错误数据或记录错误日志。

内容的提问来源于stack exchange,提问作者NotGreatAtCoding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:20:49