将响应变量转换为 JSON 文件

Convert Response Variable to JSON file

我正在尝试将位于 https://lpl.qq.com/web201612/data/LOL_MATCH_DETAIL_7325.js 的页面转换为 json 文件,以便我可以将其解析为 pandas table.

我正在使用 python 请求库,我的函数如下所示:

[1]def lpl_get_match_data(url, test):
[2]    good_url = "https://lpl.qq.com/web201612/data/LOL_MATCH_DETAIL_7325.js"
[3]    json_file = requests.get(good_url)
[4]    json_content = json_file.json()
[5]    if test == True:
[6]        pprint.pprint(json_content)
[7]    return(json_content)

当我 运行 这个函数时,我得到一个错误,“JSONDecodeError:期望值:第 1 行第 1 列(字符 0)”。

我做了明显的“google 错误”并检查了一堆回复,看起来在很多情况下人们都有空文件或没有收到回复。我尝试将第 3 行更改为 requests.get(good_url).content 以确认我得到了正确的响应,而且看起来确实如此。我想知道是否有人可以指出为什么此页面不可读为 json 对象。

问题是您尝试阅读的页面包含 Javascript 对象,而不是 JSON 文件。您可以使用 demjson.decode(json_file.content[12:-1]) 转换通过 demjson 库获得的对象。请注意,内容是一个字符串,因此您可以使用给定的索引对“var dataObj = {”和“}”部分进行切片。您可以使用它代替您的第三行,这应该可以解决您的问题。