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

使用pd.read_json转换请求返回JSON为DataFrame时遇ValueError报错求助

解决ValueError: Invalid file path or buffer object type: <class 'dict'>错误

错误原因

pd.read_json() 仅接受文件路径、JSON格式字符串或文件对象作为输入,而你通过 datos.json() 已经将API响应解析成了Python字典(<class 'dict'>),直接传入就会触发该类型错误。

解决方案

有两种可行的修正方式,优先推荐第一种:

方法1:直接用pd.DataFrame()转换字典

datos.json() 返回的字典结构通常可以直接被 pd.DataFrame() 解析,无需额外序列化步骤,效率更高:

import requests
import pandas as pd

# 修正URL中fin参数的语法错误(缺失=号)
url = 'https://apps.grupoice.com/CenceWeb/data/sen/json/DemandaMW?inicio=20190101&fin=20190131'
datos = requests.get(url)
print(datos.status_code)
datos_json = datos.json()
# 直接将字典转换为DataFrame
datos_df = pd.DataFrame(datos_json)

方法2:将字典转为JSON字符串后传入pd.read_json()

如果需要保留pd.read_json()的使用,可以通过json.dumps()将字典序列化为JSON字符串:

import requests
import pandas as pd
import json

url = 'https://apps.grupoice.com/CenceWeb/data/sen/json/DemandaMW?inicio=20190101&fin=20190131'
datos = requests.get(url)
print(datos.status_code)
datos_json = datos.json()
# 序列化字典为JSON字符串后传入read_json
datos_df = pd.read_json(json.dumps(datos_json))

额外提示

原URL中的fin参数存在语法错误(缺少=号,应为fin=20190131),这可能导致API返回无效数据,已在上述代码中修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:40:29