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

Python中将JSON转为Pandas DataFrame失败,求解决方法

问题分析与解决方案

错误原因

你遇到的NameError是因为未导入json模块,但更关键的是这行代码完全冗余:requests.Response对象的.json()方法已经直接将API返回的JSON数据转换成了Python字典(你打印的<class 'dict'>已经证明了这一点),不需要再用json.loads()处理,而且json.loads()需要传入字符串而非Response对象,本身用法也错误。

函数弃用说明

requests.get()和response.json()均未被弃用,你的问题是代码冗余和用法错误导致的,与函数弃用无关。

修正后的代码(快速转成表格格式)

import requests
import pandas as pd 

# 替换[TADA]为你的实际API密钥
full_request = "https://developer.nrel.gov/api/alt-fuel-stations/v1.json?api_key=[TADA]&fuel_type=E85,ELEC&location=NewWestminster"

gotten = requests.get(full_request)
# 确认请求成功
if gotten.status_code == 200:
    # 直接解析JSON为字典
    data = gotten.json()
    # NREL API返回的站点数据在'fuel_stations'字段下,提取该列表生成DataFrame
    df = pd.DataFrame(data['fuel_stations'])
    # 查看前几行数据验证
    print(df.head())
    # 导出为CSV表格
    df.to_csv('new_west_alt_fuel_stations.csv', index=False)
else:
    print(f"请求失败,状态码:{gotten.status_code}")

关键说明

  • NREL的这个API返回的JSON结构中,实际的站点列表数据嵌套在fuel_stations键下,必须提取这个列表来创建DataFrame,否则直接用整个字典创建会得到不符合预期的表格。
  • 导出CSV时设置index=False可以避免生成多余的索引列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 08:55:07