Json to pandas dataframde

Json to pandas dataframde

提问人:Bogdan Titomir 提问时间:11/2/2023 更新时间:11/2/2023 访问量:49

问:

我想从此页面获取消息列表 https://stocktwits.com/symbol/SPY 它们提供了一个免费的 api,我可以在其中获取 json 文件 https://api.stocktwits.com/api/2/streams/symbol/SPY.json

import requests
import json

request=requests.get('https://api.stocktwits.com/api/2/streams/symbol/SPY.json')
json_data=request.json()

我使用了上面的代码,但是我一直收到错误,如果有人可以帮助我获取pandas数据帧形式的消息列表,我将非常满意JSONDecodeError: Expecting value: line 1 column 1 (char 0)

JSON的 熊猫 请求

评论

1赞 Abdul Niyas P M 11/2/2023
当你的打印时,你会得到什么?request
0赞 Bogdan Titomir 11/2/2023
@AbdulNiyasPM <回应 [403]>
0赞 Abdul Niyas P M 11/2/2023
如您所见,它返回 403 状态代码,这意味着您没有足够的权限来访问此 API
0赞 Bogdan Titomir 11/2/2023
@AbdulNiyasPM我可以用浏览器打开链接,然后得到json文件
1赞 Abdul Niyas P M 11/2/2023
有趣的是,尝试在标头中传递自定义用户代理,看看它是否有效。喜欢requests.get(URL, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'})

答:

2赞 Abdul Niyas P M 11/2/2023 #1

似乎您需要传递标头才能获得预期的响应。User-Agent

>>> import requests
>>> request = requests.get('YOUR_URL', headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'})

请求成功后,您可以使用 API 从服务器返回的 JSON 构建数据帧。pandas.read_json