即使JSON代碼是正確的(我測試它與JSON Validator)我得到這個錯誤。這裏是我的代碼:ValueError:沒有JSON對象可以解碼錯誤與有效的JSON
import urllib.request, urllib.parse
import json
num_queries = 50*4
query = urllib.parse.urlencode({'q' : 'example'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
for start in range(0, num_queries, 4):
request_url = '{0}&start={1}'.format(url, start)
print(request_url)
request = urllib.request.Request(request_url)
request.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
search_results = urllib.request.urlopen(request)
encoding = search_results.headers.get_content_charset()
print(search_results.read().decode(encoding))
json = json.loads(search_results.read().decode(encoding))
results = json['responseData']['results']
for i in results:
print (i['url'])
這裏的答覆,我得到:
{
"responseData": {
"results": [
{
"GsearchResultClass": "GwebSearch",
"unescapedUrl": "http://example.com/",
"url": "http://example.com/",
"visibleUrl": "example.com",
"cacheUrl": "http://www.google.com/search?q=cache:OEM9MzUDrRQJ:example.com",
"title": "<b>Example</b> Domain",
"titleNoFormatting": "Example Domain",
"content": "<b>Example</b> Domain. This domain is established to be used for illustrative <b>examples</b> \nin documents. You may use this domain in <b>examples</b> without prior coordination ..."
},
{
"GsearchResultClass": "GwebSearch",
"unescapedUrl": "http://fr.wikipedia.org/wiki/Example_(chanteur)",
"url": "http://fr.wikipedia.org/wiki/Example_(chanteur)",
"visibleUrl": "fr.wikipedia.org",
"cacheUrl": "http://www.google.com/search?q=cache:KQgswW_0sBoJ:fr.wikipedia.org",
"title": "<b>Example</b> (chanteur) — Wikipédia",
"titleNoFormatting": "Example (chanteur) — Wikipédia",
"content": "Elliot John Gleave plus connu sous le pseudonyme <b>Example</b> (né le 20 juin 1982) \nest un chanteur et rappeur britannique. Son nom de scène vient de ses ..."
},
{
"GsearchResultClass": "GwebSearch",
"unescapedUrl": "http://www.trythisforexample.com/",
"url": "http://www.trythisforexample.com/",
"visibleUrl": "www.trythisforexample.com",
"cacheUrl": "http://www.google.com/search?q=cache:VErXNqtEJDsJ:www.trythisforexample.com",
"title": "<b>Example</b>",
"titleNoFormatting": "Example",
"content": "Official site for <b>Example</b>. ... Pre-order New Album · Tour Dates · Merch · Twitter · \nInstagram · Facebook · Youtube <b>Example</b> © 2013 Epic Records Privacy Policy."
},
{
"GsearchResultClass": "GwebSearch",
"unescapedUrl": "http://www.youtube.com/watch?v=CLXt3yh2g0s",
"url": "http://www.youtube.com/watch%3Fv%3DCLXt3yh2g0s",
"visibleUrl": "www.youtube.com",
"cacheUrl": "http://www.google.com/search?q=cache:9CKsisLTCjgJ:www.youtube.com",
"title": "<b>Example</b> - 'Changed The Way You Kiss Me' (Official Video) - YouTube",
"titleNoFormatting": "Example - 'Changed The Way You Kiss Me' (Official Video) - YouTube",
"content": "Apr 21, 2011 <b>...</b> Download <b>Example's</b> new single 'Perfect Replacement' on iTunes (Out Now): http\n://www.smarturl.it/PERFECTREPLACEMENT For more Click ..."
}
],
"cursor": {
"resultCount": "157 000 000",
"pages": [
{
"start": "0",
"label": 1
},
{
"start": "4",
"label": 2
},
{
"start": "8",
"label": 3
},
{
"start": "12",
"label": 4
},
{
"start": "16",
"label": 5
},
{
"start": "20",
"label": 6
},
{
"start": "24",
"label": 7
},
{
"start": "28",
"label": 8
}
],
"estimatedResultCount": "157000000",
"currentPageIndex": 0,
"moreResultsUrl": "http://www.google.com/search?oe=utf8&ie=utf8&source=uds&start=0&hl=fr&q=example",
"searchResultTime": "0,22"
}
},
"responseDetails": null,
"responseStatus": 200
}
錯誤:
Traceback (most recent call last):
File "test.py", line 16, in <module>
text = json.loads(search_results.read().decode(encoding))
File "/usr/lib/python3.3/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.3/json/decoder.py", line 352, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.3/json/decoder.py", line 370, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
錯誤在哪裏? – SzieberthAdam