Python JSON to Dictionary Example
If you have JSON text and want to turn it into normal Python data, the usual tool is the built-in json module.
This example shows one practical task: converting a JSON string into a Python dictionary so you can read values by key and use them in your program.
Quick example #
import json
json_text = '{"name": "Alice", "age": 25, "is_admin": false}'
data = json.loads(json_text)
print(data)
print(type(data))
print(data["name"])
Output:
{'name': 'Alice', 'age': 25, 'is_admin': False}
<class 'dict'>
Alice
Use json.loads() for a JSON string. If the JSON root value is an object, it returns a Python dictionary.
What this example does #
- Shows how to convert a JSON string into a Python dictionary
- Uses the built-in
jsonmodule - Explains the difference between JSON text and Python data
When to use this #
Use this approach in common situations like these:
- When you get JSON from an API
- When you read JSON from a file or response body
- When you need to access values by key in Python
If you want a broader walkthrough, see how to parse JSON in Python.
Basic example with json.loads() #
To convert JSON text into Python data:
- Import
json - Store the JSON in a string
- Call
json.loads(json_text) - Read values from the result
import json
json_text = '{"name": "Alice", "age": 25, "city": "London"}'
data = json.loads(json_text)
print(data)
print(data["name"])
print(data.get("age"))
Output:
{'name': 'Alice', 'age': 25, 'city': 'London'}
Alice
25
How it works #
json_textis plain text in JSON formatjson.loads(json_text)parses that text- Because the top-level JSON value is an object, the result is a Python
dict
If you want more detail on this function, read json.loads() explained.
What the result looks like #
JSON does not always become a dictionary. It depends on the JSON value you parse.
Here is the usual mapping:
- JSON objects become Python dictionaries
- JSON arrays become Python lists
- JSON
true,false,nullbecomeTrue,False,None
Example:
import json
json_text = '{"user": "Alice", "scores": [10, 20, 30], "active": true, "nickname": null}'
data = json.loads(json_text)
print(data)
print(type(data))
print(type(data["scores"]))
print(data["active"])
print(data["nickname"])
Output:
{'user': 'Alice', 'scores': [10, 20, 30], 'active': True, 'nickname': None}
<class 'dict'>
<class 'list'>
True
None
Example: access dictionary values #
Once the JSON has been converted, you can use it like a normal dictionary.
import json
json_text = '{"name": "Alice", "age": 25}'
data = json.loads(json_text)
print(data["name"])
print(data.get("name"))
print(type(data))
Output:
Alice
Alice
<class 'dict'>
data["name"] vs data.get("name") #
data["name"]gets the value for the key"name"data.get("name")also gets the value, but is safer if the key might be missing
Example:
import json
json_text = '{"name": "Alice"}'
data = json.loads(json_text)
print(data.get("age"))
Output:
None
If you use data["age"] and the key does not exist, Python raises an error. See how to fix KeyError when accessing dictionary values.
Example: nested JSON #
JSON often contains objects inside objects, or lists inside objects.
import json
json_text = """
{
"user": {
"name": "Alice",
"contact": {
"email": "alice@example.com"
}
},
"skills": ["Python", "SQL"]
}
"""
data = json.loads(json_text)
print(data["user"]["name"])
print(data["user"]["contact"]["email"])
print(data["skills"][0])
Output:
Alice
alice@example.com
Python
What to notice #
- Nested JSON objects become nested dictionaries
- JSON arrays become Python lists
- You access nested values one step at a time
For example:
data["user"]gives a dictionarydata["user"]["contact"]gives another dictionarydata["skills"]gives a list
JSON string vs JSON file #
This is a common beginner confusion.
- Use
json.loads()for a string - Use
json.load()for a file object - Do not mix the two functions
JSON string example #
import json
json_text = '{"name": "Alice"}'
data = json.loads(json_text)
print(data)
JSON file example #
Suppose data.json contains:
{"name": "Alice"}
Then you would read it like this:
import json
with open("data.json", "r") as file:
data = json.load(file)
print(data)
If you want to learn that version in more detail, see json.load() explained and Python JSON module overview.
Common beginner mistakes #
These are some of the most common reasons JSON conversion fails.
- Using single quotes inside JSON text
- Forgetting to import
json - Using
json.load()on a plain string - Expecting every JSON value to become a dictionary
1. Using single quotes in JSON #
This is invalid JSON:
import json
json_text = "{'name': 'Alice'}"
data = json.loads(json_text)
JSON requires double quotes around keys and string values.
Correct version:
import json
json_text = '{"name": "Alice"}'
data = json.loads(json_text)
print(data)
2. Parsing Python dictionary syntax as JSON #
Python dictionary syntax looks similar to JSON, but they are not the same thing.
This is Python data:
data = {"name": "Alice", "is_admin": False}
This is JSON text:
json_text = '{"name": "Alice", "is_admin": false}'
Notice the difference:
- Python uses
False - JSON uses
false
3. Using the wrong function #
This is wrong because json.load() expects a file object, not a string:
import json
json_text = '{"name": "Alice"}'
data = json.load(json_text)
Use json.loads() for strings instead.
4. Assuming the result is always a dictionary #
If the top-level JSON value is an array, the result will be a list:
import json
json_text = '["apple", "banana", "orange"]'
data = json.loads(json_text)
print(data)
print(type(data))
Output:
['apple', 'banana', 'orange']
<class 'list'>
FAQ #
What function converts JSON to a dictionary in Python? #
Use json.loads() when you have JSON as a string. If the JSON root is an object, the result is a Python dictionary.
What is the difference between json.load() and json.loads()? #
json.load() reads JSON from a file object. json.loads() reads JSON from a string.
Does JSON always become a dictionary? #
No. A JSON object becomes a dictionary, but a JSON array becomes a list.
Why does my JSON conversion fail? #
The most common reason is invalid JSON format, especially single quotes, missing commas, or trailing commas.