Open In App

JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Last Updated : 13 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

We will see how to Fix ” JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)” While Parsing JSON. In this article, we will see the reasons for this occurring and the solution of ” JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)” While Parsing JSON.

What is “JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)”?

When working with JSON (JavaScript Object Notation) data in programming, encountering errors during the parsing process is not uncommon. One such error that developers may come across is the “JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)” This error occurs when attempting to parse JSON data, and the parser encounters an unexpected structure or format that deviates from the expected property name syntax.

Syntax:

JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 

Below, are the reasons for occurring JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1) in Python:

  • Incorrect Quote Usage
  • Invalid literals Usage

Incorrect Quote Usage

JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1) error occurs in below code due to the usage of single quotes (') instead of double quotes (") around the keys and string values in the JSON data. JSON syntax specifically requires double quotes for both keys and string values.

Python3
# code
import json

# Using single quotes in JSON
json_data_single = "{'name': 'John', 'age': 25, 'city': 'New York'}"
parsed_single = json.loads(json_data_single)

print("Using single quotes:")
print(parsed_single)

Output:

    352         try:
--> 353 obj, end = self.scan_once(s, idx)
354 except StopIteration as err:
355 raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Invalid literals Usage

JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1) error might occur when the format of the Json string is wrong . The below JSON string has comma at the end of the string. So the JSON string becomes invalid.

Python3
# code
import json

# Using single quotes in JSON
json_data_single = "{'name': 'John', 'age': 25, 'city': 'New York'},"
parsed_single = json.loads(json_data_single)

print("Using single quotes:")
print(parsed_single)

Output:

    352         try:
--> 353 obj, end = self.scan_once(s, idx)
354 except StopIteration as err:
355 raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Solution for “JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)”

Below, are the approaches to solve JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1):

  • Correct Quote Usage
  • Valid literals Usage

Correct Quote Usage

In the above code, the issue lies in the usage of single quotes (') for defining the JSON string. JSON specification requires double quotes (") for both key names and string values. Here’s the corrected code:

Python3
import json

# Using double quotes in JSON
json_data_fixed = '{"name": "John", "age": 25, "city": "New York"}'
parsed_fixed = json.loads(json_data_fixed)

print("Using double quotes:")
print(parsed_fixed)

Output
Using double quotes:
{'name': 'John', 'age': 25, 'city': 'New York'}

Valid literals Usage

In the above code, there is an extra comma at the end of the JSON string, which may cause issues during parsing. Additionally, the usage of single quotes (') for defining the JSON string should be replaced with double quotes ("). Here’s the corrected code:

Python3
import json

# Remove the extra comma and use double quotes in JSON
json_data_fixed = '{"name": "John", "age": 25, "city": "New York"}'
parsed_fixed = json.loads(json_data_fixed)

print("Using double quotes and fixing the comma:")
print(parsed_fixed)

Output
Using double quotes and fixing the comma:
{'name': 'John', 'age': 25, 'city': 'New York'}

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads