我正尝试在Python中按以下方式加载以下JSON文件(来自Google Github存储库):
import json
import requests
url = "https://raw.githubusercontent.com/google/vsaq/master/questionnaires/webapp.json"
r = requests.get(url)
data = r.text.splitlines(True)
#remove first n lines which is not JSON (commented license)
data = ''.join(data[14:])
使用json.loads(data)
时出现以下错误:
JSONDecodeError: Expecting ',' delimiter: line 725 column 543 (char 54975)
由于GitHub存储库所有者(Google)已将其保存为json文件,所以我想知道我在这里做错了什么。
答案 0 :(得分:1)
我发现从API调用获得的文本就像一个简单的文本,而不是有效的JSON(我在https://jsonformatter.curiousconcept.com/处进行了检查)。
这是我用来从响应中过滤有效JSON部分的代码。
我使用了
re
模块来提取JSON部分。
import json
import requests
import re
url = "https://raw.githubusercontent.com/google/vsaq/master/questionnaires/webapp.json"
r = requests.get(url)
text = r.text.strip()
m = re.search(r'\{(.|\s)*\}', text) # It is for finding a valid JSON part from obtained text
s = m.group(0).replace('false', 'False') # Python has 'False/True' not 'false/true' (Replacement)
d = eval(s)
print(d) # {...}
print(type(d)) # <class 'dict'>
参考书目»