从Google GitHub存储库加载JSON数据

时间:2018-11-10 10:47:48

标签: python json

我正尝试在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文件,所以我想知道我在这里做错了什么。

1 个答案:

答案 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'>
参考书目»