Read JSON Response In Python
I am trying to read json response from this link. But its not working! I get the following error: ValueError: No JSON object could be decoded. Here is the code I've tried: impor
Solution 1:
Two corrections need to be made to your code:
- The url was corrected (as mentioned by Felix Kling here). You have to remove the
callback
parameter from the GET request you were sending. - Also, if you check the type of the response that you were fetching earlier you'll notice that it wasn't a string. It was
<type 'instance'>
. And sincejson.loads()
accepts astring
as a parameter variable you would've got another error. Therefore, usea.read()
to fetch the response data instring
.
Hence, this should be your code:
import urllib2, json
a = urllib2.urlopen('https://www.googleapis.com/pagespeedonline/v3beta1/mobileReady?key=AIzaSyDkEX-f1JNLQLC164SZaobALqFv4PHV-kA&screenshot=true&snapshots=true&locale=en_US&url=https://www.economicalinsurance.com/en/&strategy=mobile&filter_third_party_resources=false')
data = json.loads(a.read())
Answer to your second query (regarding the image) is:
from base64 import decodestring
arr = json_data['screenshot']['data']
arr = arr.replace("_", "/")
arr = arr.replace("-","+")
fh = open("imageToSave.jpeg", "wb")
fh.write(str(arr).decode('base64'))
fh.close()
Here, is the image you were trying to fetch - Link
Solution 2:
Felix Kling is right about the address, but I also created a variable that holds the URL. You can try this out to and it should work:
import urllib2, json
url = "https://www.googleapis.com/pagespeedonline/v3beta1/mobileReady?key=AIzaSyDkEX-f1JNLQLC164SZaobALqFv4PHV-kA&screenshot=true&snapshots=true&locale=en_US&url=https://www.economicalinsurance.com/en/&strategy=mobile&filter_third_party_resources=false"
response = urllib2.urlopen(url)
data = json.loads(response.read())
print data
Post a Comment for "Read JSON Response In Python"