Ned*_*sha 8 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)
Run Code Online (Sandbox Code Playgroud)
我得到了这些错误:
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
Run Code Online (Sandbox Code Playgroud)
你能帮我吗。有没有其他方法可以将我的 json api 转换为 python 中的数据帧?请帮我。
删除这一行:
data = json.dumps(r) #convert to json
Run Code Online (Sandbox Code Playgroud)
这会将 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)
Run Code Online (Sandbox Code Playgroud)