close

[Solved] Python error load JSON code of google API

Hello Guys, How are you all? Hope You all Are Fine. Today I get the following error Python error load JSON code of google API in python. So Here I am Explain to you all the possible solutions here.

Without wasting your time, Let’s start This Article to Solve This Error.

How Python error load JSON code of google API Error Occurs?

Today I get the following error Python error load JSON code of google API in python.

How To Solve Python error load JSON code of google API Error ?

  1. How To Solve Python error load JSON code of google API Error ?

    To Solve Python error load JSON code of google API Error The error arises because the “data” is of type bytes so you have to decode it into a string before using json.loads to turn it into a json object. So to solve the problem:

  2. Python error load JSON code of google API

    To Solve Python error load JSON code of google API Error The error arises because the “data” is of type bytes so you have to decode it into a string before using json.loads to turn it into a json object. So to solve the problem:

Solution 1

So, I had to modify your code to run. I am using Python 3.4.3 on Ubuntu 14.04.

#import urllib  
import urllib.parse
import urllib.request

I received a similar error:

[email protected]:~/src/test$ python3 help.py 
Enter location: MI
Retrieving http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=MI
Retrieved 1405 characters
Traceback (most recent call last):
  File "help.py", line 18, in <module>
    js = json.loads(str(data))
  File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.4/json/decoder.py", line 361, in raw_decode
    raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 1 (char 0)

Basically, instead of trying to decode the valid json string, we’re trying to decode the Python ‘None’ value, which is not valid json. Try patching in the following example code. Run it first once to double-check that the simplest json object ‘{}’ will work. Then, try each different ‘possible_json_string’ one by one.

#...
print ('Retrieved',len(data),'characters')

#possible_json_string = str(data) #original error
possible_json_string = '{}' #sanity check with simplest json
#possible_json_string = data #why convert to string at all?
#possible_json_string = data.decode('utf-8') #intentional conversion

print('possible_json_string')
print(possible_json_string)
js = json.loads(possible_json_string)

Source

Solution 2

The error arises because the “data” is of type bytes so you have to decode it into a string before using json.loads to turn it into a json object. So to solve the problem:

uh = urllib.request.urlopen(url)
data = uh.read()
print ('Retrieved',len(data),'characters')

js = json.loads(data.decode("utf-8"))

Also, str(data) in the code you share will work in Python 2.x but not in Python 3.x because str() doesn’t turn bytes into a string in 3.x.

Summery

It’s all About this issue. Hope all solution helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which solution worked for you? Thank You.

Also, Read