gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:41:01 25 4
gpt4 key购买 nike

我正在尝试将我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com