Skip to content

Fix: json.decoder.jsondecodeerror: expecting value: line 1 column 1 char 0

  • by
  • 2 min read

If you’re working with APIs and trying to fetch or parse JSON data during HTTP or CURL requests, getting a properly formatted JSON response is important. Regardless of the programming language, you’re using, if the JSON response isn’t well-formatted you are going to get an error code.

In this article, we’re talking about “json.decoder.jsondecodeerror” that you might get when dealing with JSON files in Python, its causes and what you can do to fix the problem.


What causes this error?

A number of things can affect the output format of a JSON response. The error can be caused by the following reasons:

  • The response might be in a different format.
  • The JSON response isn’t structured properly.
  • The response doesn’t have the application/json header.
  • Invalid status code.
  • Empty response. 

Also read: Fix: Python was not found; run without arguments to install 


How to fix this error?

Here are three fixes you can try out. 

Fix the JSON format

The first thing you should do is try and fix the JSON output format. By ensuring that the data is properly categorised and divided using commas in the JSON file, you can easily fix the issue. 


Check your API calls

If you’re fetching the JSON from an API, check to see if you’re making the right calls. Ideally, you should get an HTTP 200 status code when you fetch the data successfully. If you’re getting any other status code, check to see if there’s an issue with the API or the function making the call. 


Invoke json.load() on the file

If you’re not using an API and fetching JSON files directly, it’s suggested you don’t pass the file path directly to the json.load() function. The method decentralises a JSON file to a Python object making it easier to deal with in code.

You should be using the function as follows.

json_file_path = "/path/to/example.json"

with open(json_file_path, 'r') as j:
     contents = json.loads(j.read())

Also read: Typeerror: Cli.init is not a function: 2 Fixes

Yadullah Abidi

Yadullah Abidi

Yadullah is a Computer Science graduate who writes/edits/shoots/codes all things cybersecurity, gaming, and tech hardware. When he's not, he streams himself racing virtual cars. He's been writing and reporting on tech and cybersecurity with websites like Candid.Technology and MakeUseOf since 2018. You can contact him here: yadullahabidi@pm.me.

>