我试图下载并分析我在lichess.org上为一个项目玩的象棋游戏,根据他们的公共api,他们声明响应应该以ndjson格式返回,但是使用响应体上的.json()方法会产生一个JSONDecode错误
我希望能够为每一个游戏提取游戏数据,到目前为止,我已经达到了这样的目的:
params = {
"perfType": "blitz,rapid,classical"
}
response = requests.get('https://lichess.org/api/games/user/RAMEZESSAM1', params=params)当迭代内容时:
for item in response.iter_lines():
print(item.decode())输出如下所示:

只是我所有游戏的解码响应字节文本
如果能一个一个地提取游戏并将其存储为json对象,我们将不胜感激。
发布于 2022-05-25 11:43:25
就像设置perfType查询参数一样,也可以将pgnInJson参数设置为true。这个默认为false,这就是为什么您只返回pgn格式的响应。
https://lichess.org/api#operation/apiGamesUser
试试看!

发布于 2022-09-04 03:53:32
要获得json格式的数据,需要在请求(如何将返回数据的请求指定为JSON?)中指定头部如何将返回数据的请求指定为JSON?:
response = requests.get('https://lichess.org/api/games/user/RAMEZESSAM1', params=params, headers={"Accept": "application/x-ndjson"})响应中的每一行都是一个json对象。
https://stackoverflow.com/questions/72369892
复制相似问题