我正在使用Python2.7和简单的json模块,我能够得到一个响应,但是当我想用这个JSON响应做一些事情时,我无法做到。
Python代码:
query_url = self.api_url + 'projects'
try:
req = urllib2.Request(query_url, None, {"Authorization": self._auth})
handler = self._opener.open(req)
except urllib2.HTTPError, e:
print e.headers
raise e
print simplejson.load(handler)
JSON响应:
{'start': 0, 'nextPageStart': 166, 'values': [{'description': 'This Repo is created to maintain the code versioning accordingly for My project', 'links': {'self': [{'href': 'https://bitbucket.xyz.xyz/projects/My'}]}, 'id': 757, 'key': 'MY', 'type': 'NORMAL', 'public': False, 'name': 'hub'},{'description': 'Services ', 'links': {'self': [{'href': 'https://bitbucket.xyz.xyz/projects/Hello'}]}, 'id': 1457, 'key': 'HE', 'type': 'NORMAL', 'public': False, 'name': 'Hello'}], 'limit': 25, 'isLastPage': False, 'size': 25}
我删除的数据很少,只是保留了第一个和最后一个。
我正在观察的错误
Error: Parse error on line 1:
..."NORMAL", "public": False, "name": "Advi
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
在这里,有些人可以帮助我,我在这里做错了吗。
答案 0 :(得分:0)
因为你的json无效。这是您的Json数据的有效版本。
第一个错误字符串应该用双引号括起来。
其次javascprit中的布尔变量是小写的。使用false
代替False
{
"start": 0,
"nextPageStart": 166,
"values": [{
"description": "This Repo is created to maintain the code versioning accordingly for My project",
"links": {
"self": [{
"href": "https://bitbucket.xyz.xyz/projects/My"
}]
},
"id": 757,
"key": "MY",
"type": "NORMAL",
"public": false,
"name": "hub"
},
{
"description": "Services ",
"links": {
"self": [{
"href": "https://bitbucket.xyz.xyz/projects/Hello"
}]
},
"id": 1457,
"key": "HE",
"type": "NORMAL",
"public": false,
"name": "Hello"
}
],
"limit": 25,
"isLastPage": false,
"size": 25
}