I am trying to import a file which was saved using json.dumps and contains tweet coordinates:

{
    "type": "Point", 
    "coordinates": [
        -4.62352292, 
        55.44787441
    ]
}

My code is:

>>> import json
>>> data = json.loads('/Users/JoshuaHawley/clean1.txt')  

But each time I get the error:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

I want to end up extracting all the coordinates and saving them separately to a different file so they can then be mapped, but this seemingly simple problem is stopping me from doing so. I have looked at answers to similar errors but don’t seem to be able to apply it to this. Any help would be appreciated as I am relatively new to python.

json.loads() takes a JSON encoded string, not a filename. You want to use json.load() (no s) instead and pass in an open file object:

with open('/Users/JoshuaHawley/clean1.txt') as jsonfile:
    data = json.load(jsonfile)

The open() command produces a file object that json.load() can then read from, to produce the decoded Python object for you. The with statement ensures that the file is closed again when done.

The alternative is to read the data yourself and then pass it into json.loads().

I had similar error: “Expecting value: line 1 column 1 (char 0)”

It helped for me to add “myfile.seek(0)”, move the pointer to the 0 character

with open(storage_path, 'r') as myfile:
if len(myfile.readlines()) != 0:
    myfile.seek(0)
    Bank_0 = json.load(myfile)

Please use this function

def read_json_file(filename):
    with open(filename, 'r') as f:
        cache = f.read()
        data = eval(cache)
    return data

another function

def read_json_file(filename):
    data = []
    with open(filename, 'r') as f:
        data = [json.loads(_.replace('}]}"},', '}]}"}')) for _ in f.readlines()]
    return data

I got same type of error after reading in a json file creating from python.

Same error occurred whether i read into a string and tried json.loads() or straight from file with json.load()

In my case, it turned out to be because I had written python booleans (False/True) straight out to the file.

Trying to read them back in again caused this error.
When i modified to valid json (true/false), json.load worked fine

Didnt see any SO questions with this as a possible cause for this error so adding here for reference.

import json

file_path = “C:/Projects/Tryouts/books.json”

with open(file_path, ‘r’) as j:
contents = json.loads(j.read())
print(contents)