首页 > 解决方案 > 如何解析 ndjson 文件?

问题描述

我从 lichess.org 执行了一个 GET 请求,API 参考:https ://lichess.org/api#operation/apiGamesUser

import requests
import json
import ndjson
response = requests.get('https://lichess.org/api/games/user/ardito_bryan', params={'max':10})

我无法在这里解码 ndjson,python 库:https ://pypi.org/project/ndjson/ 根据我应该使用的库参考:

items = response.json(cls=ndjson.Decoder)

它不起作用,运行错误:

JSONDecodeError: Expecting value: line 1 column 3 (char 2)

泰。

标签: databasendjson

解决方案


通过在请求中添加以下标头来修复它。

headers={
'Authorization': f'Bearer {token}', # Need this or you will get a 401: Not Authorized response
"Accept": "application/x-ndjson"
}

在此之后,我通过以下方式转换 ndjson:

resp_json = []
ndjson = response.content.decode().split('\n')

for json_obj in ndjson:
    if json_obj:
        resp_json.append(json.loads(json_obj))

现在您将拥有可解析的对象。


推荐阅读