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

如何用Python将Requests获取的JSON数据转换为CSV?

解决JSON转CSV的两种实用方法

嘿,你已经成功用requests从API拿到JSON数据了,接下来转CSV其实超简单!我给你两种实用方法,按需选就行:

方法一:用Python内置csv模块(无需额外安装)

如果你不想装第三方库,用Python自带的csv模块就搞定了,刚好适配你用的Python2环境。直接在现有代码后面加这段:

import csv

# 先判断有没有拿到有效数据
if data:
    # 从第一个数据字典里提取CSV的表头(就是那些键名,比如date、totalImpression)
    fieldnames = data[0].keys()
    # 打开一个CSV文件准备写入,文件名可以自己改
    with open('stats_data.csv', 'wb') as csvfile:
        # 创建DictWriter对象,用来把字典转成CSV行
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        # 先写入表头
        writer.writeheader()
        # 把每一条JSON数据逐行写入CSV
        for row in data:
            writer.writerow(row)
    print "CSV文件已成功生成!"
else:
    print "没获取到有效数据,没法生成CSV哦"

关键点说明:

  • 'wb'模式是Python2里写入CSV的正确打开方式,能避免换行符乱掉的问题
  • DictWriter会自动把字典的键对应到表头,值对应到列,不用手动对齐位置

方法二:用pandas模块(代码更简洁)

如果能装第三方库,pandas的写法会更省心,一行核心代码就搞定。

首先先安装pandas:

pip install pandas

然后在你的代码里添加:

import pandas as pd

# 把JSON的字典列表直接转成DataFrame表格
df = pd.DataFrame(data)
# 保存成CSV,index=False是去掉自动生成的行号,encoding避免乱码
df.to_csv('stats_data_pandas.csv', index=False, encoding='utf-8')
print "CSV文件已成功生成!"

关键点说明:

  • pandas会自动处理表头和行数据的对应,不用手动提取键名
  • index=False一定要加,不然CSV里会多一列没用的行索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:58:27