python - 响应类型的对象不是 JSON 可序列化的

标签 python json pandas

我正在尝试将我的 json 从 api 转换为 python 中的数据帧。我运行以下代码:

import requests
import pandas as pd
import simplejson as json

params = {
  "api_key": "abc",
  "format": "json"
}
r = requests.get('https://www.parsehub.com/api/v2/runs/ttx8PT-EL6Rf/data', params=params)

data = json.dumps(r) #convert to json
data = json.loads(data)
dataFrame = pd.DataFrame.from_dict(data) #convert json to dataframe
print(dataFrame)

我收到了这些错误:
Traceback (most recent call last):
  File "C:/Users/User/PycharmProjects/test/convert jsontodataframe.py", line 11, in <module>
    data = json.dumps(r) #convert to json
  File "C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\simplejson\__init__.py", line 395, in dumps
    return _default_encoder.encode(obj)
  File "C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\simplejson\encoder.py", line 296, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\simplejson\encoder.py", line 378, in iterencode
    return _iterencode(o, 0)
  File "C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\simplejson\encoder.py", line 273, in default
    o.__class__.__name__)
TypeError: Object of type Response is not JSON serializable

你能帮我吗。
有没有另一种方法可以将我的 json api 转换为 python 中的数据帧?请帮我。

最佳答案

删除这一行:

data = json.dumps(r) #convert to json

这会将 python 字典转换为字符串 - 而不是像您在代码中注释的那样将字符串转换为 json 对象。

您的代码应如下所示:
import requests
import pandas as pd
import simplejson as json

params = {
  "api_key": "abc",
  "format": "json"
}

r = requests.get('https://www.parsehub.com/api/v2/runs/ttx8PT-EL6Rf/data', params=params)

data = json.loads(r.json)
dataFrame = pd.DataFrame.from_dict(data) #convert json to dataframe
print(dataFrame)

关于python - 响应类型的对象不是 JSON 可序列化的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60139482/

相关文章:

java - 在 Java 中是否可以一起返回枚举名称和值?

java - 如何使用 Servlet 从 POST 请求获取 JSON 数据

python - 在预先排序的 DataFrame 上使用 pandas groupby 的迭代顺序

python - Pandas 中的箱线图

python - 如何在 Pycharm 的调试 session 中断期间向 python 类/对象添加方法?

python - 互操作性建议 - Python、C、Matplotlib/OpenGL 运行时效率

python - 使用 dictConfig 的 Django 日志记录找不到 "logging"模块

python - 将变量分配给具有相同键的字典项

php - 使用 JSON 发送二进制文件内容

python - 两个数据帧之间 Pandas 的计算集差异