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

咨询如何将JSON对象转换为CSV对象及相关Python代码问题

修复JSON转CSV的Python代码问题

让我帮你梳理并修复这段将API返回的JSON转为CSV的代码——里面有几个变量混乱、语法错误和用法不当的问题,咱们一步步来调整:

原代码里的核心问题

  • 变量名混乱:一会儿用r_vehicles,一会儿用r_v,甚至出现了先赋值df_v = pd.DataFrame(r_v)但r_v还没定义的情况,还有重复的API请求
  • pd.to_csv用法错误:这是DataFrame对象的方法,不是pandas的顶层函数,你不能直接用pd.to_csv(df_v),而且它的作用是导出CSV(存文件或返回字符串),不是重新赋值给变量
  • 语法错误:原代码里r_vehicles = requests.post(API))多了一个右括号,"Api"也应该是你的实际API地址或者变量

修复后的完整代码

# 先导入必要的库
import requests
import pandas as pd

# 替换成你的实际API地址
API_URL = "https://your-api-endpoint.com/vehicles"

# 发送POST请求获取数据
response = requests.post(API_URL)
# 检查请求是否成功,失败时直接抛出异常方便排查
response.raise_for_status()

# 将API返回的JSON转为DataFrame
# 两种方式二选一都可以:
df_vehicles = pd.read_json(response.text)
# 或者用response.json()直接获取字典再转DataFrame:
# df_vehicles = pd.DataFrame(response.json())

# 将DataFrame导出为CSV文件(index=False表示不保存索引列)
df_vehicles.to_csv("vehicles_output.csv", index=False)

# 如果不需要存文件,只想得到CSV格式的字符串:
# csv_content = df_vehicles.to_csv(index=False)
# print(csv_content)

关键修复说明

  1. 统一变量命名:用response代替混乱的r_vehicles/r_v,让代码逻辑更清晰
  2. 正确使用to_csv:调用DataFrame对象的to_csv方法,指定输出路径(或获取字符串),而不是错误地用pandas顶层函数
  3. 移除重复请求:只需要一次API请求就能拿到数据,避免冗余操作
  4. 添加请求校验:response.raise_for_status()会在API返回错误状态码时直接报错,帮你快速定位请求问题
  5. 灵活的JSON转DataFrame方式:如果API返回的是扁平JSON,两种转换方式都能用;如果是嵌套JSON,可能需要先解析嵌套结构再转DataFrame

额外注意事项

  • 如果你的API需要身份验证(比如Token),记得在requests.post里加上请求头:
    headers = {"Authorization": "Bearer your-token-here"}
    response = requests.post(API_URL, headers=headers)
    
  • 确保API返回的是有效的JSON格式,如果返回的是嵌套层级较深的JSON,可能需要用json_normalize来扁平化数据:
    from pandas import json_normalize
    df_vehicles = json_normalize(response.json())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:46:12