Very simple:

import json
data = json.loads('{"one" : "1", "two" : "2", "three" : "3"}')
print(data['two'])  # or `print data['two']` in Python 2
Answer from John Giotta on Stack Overflow
🌐
Medium
medium.com › @datajournal › how-to-parse-json-data-with-python-99069a405e2b
How to Parse JSON Data With Python (EASY) | Medium
May 29, 2024 - Python’s standard library includes a module called `json` that makes it easy to work with JSON data. This module provides methods for parsing JSON data into Python objects and converting Python objects into JSON strings.
Discussions

How should/can I convert loaded JSON data into Python objects?
I have JSON input like this: { "accountID": "001-002-003-004", "accountClass": "Primary", "id": "1-2", "openTime": "2019-12-21T02:12:17.122Z", "priceDifference": "0.12345", } I would like to deserialise it into a Python object in a way similar to how serde from Rust works. More on discuss.python.org
🌐 discuss.python.org
1
October 25, 2022
Really struggling with parsing json and dictionaries
I have a feeling you're overthinking this. When you access a value using jq, you look through each level and determine which element you need from the next level. Sometimes, the item is an array, so you access it via its index; sometimes, it's an object, so you access it via its dictionary. Really it's exactly the same with Python, except you would be more explicit with the lookups. In this case, assuming you do only have one Vpc as shown in that JSON, you don't need any loops at all; you can just access it directly: cidr_block = vpc['Vpcs'][0]['CidrBlock'] The outer data structure is a dict, so access it via keys; its Vpc key contains a list, so access that via index; the only item in the list is a dict, so access it via the key you want. The reason why your loop gets the cidr and then fails is because it looks through every key in the outer dictionary; the first one is Vpc, so it works, but the second one is ResponseMetadata whose value is a dict, not a list, so you get the error as you're trying to index it like a list. And no, you don't need to dump it back to JSON; I'm not sure why you think you need to. JSON is a string format, which you can use to send data to and from an API, but you would only ever interact with that data in Python format. More on reddit.com
🌐 r/learnpython
16
3
June 19, 2022
Parsing Multi-Line JSON into Single-Line Python
You don't make something a JSON with just double quotes, a JSON needs at least outer [] or {}. But why bother when you can just do with open("ProjectEuler8Number.txt") as fp: number = ''.join(c for c in fp.read() if c.isdigit()) this will simply read all the digits from the file and form a single string from it More on reddit.com
🌐 r/learnpython
5
1
March 14, 2020
Is there a Python equivivalent of JavaScript's JSON.stringify() ?

I don't really understand what you're asking. You don't want 'false' as a string, that's not how it's done in JSON. The inverse of json.loads() is json.dumps() and it handles all the necessary mapping between Python types and JS types.

>>> import json
>>> foo = {1: True}
>>> json.dumps(foo)
'{"1": true}'
More on reddit.com
🌐 r/learnpython
5
2
February 26, 2015
🌐
Oxylabs
oxylabs.io › blog › python-parse-json
Reading & Parsing JSON Data With Python: Tutorial
Instead of the JSON loads method, which reads JSON strings, the method used to read JSON data in files is load(). The load() method takes up a file object and returns the JSON data parsed into a Python object.
🌐
Bobdc
bobdc.com › blog › pythonjson
Parsing JSON with Python
December 15, 2024 - My sample demo data to parse is pretty close to the test input that I used when I wrote about JSON2RDF: { "mydata": { "color": "red", "amount": 3, "arrayTest": [ "north", "south", "east", "escaped \"test\" string", "west" ], "boolTest": true, "nullTest": null, "addressBookEntry": { "givenName": "Richard", "familyName": "Mutt", "address": { "street": "1 Main St", "city": "Springfield", "zip": "10045" } } } } ... #!/usr/bin/env python3 import json f = open('jsondemo.js') data = json.load(f) print(data["mydata"]["color"]) print(data["mydata"]["amount"]) # Pull something out of the middle of an ar
🌐
Quora
quora.com › How-do-you-parse-a-JSON-list-in-Python
How to parse a JSON list in Python - Quora
Answer (1 of 3): Before you can start working with JSON in Python, you'll need some JSON to work with. There are a few things that you'll need to set up first. First, create a Python file that will hold your code for these exercises. Inside the file, import the JSON module. [code]import json [/c...
🌐
Python.org
discuss.python.org › python help
How should/can I convert loaded JSON data into Python objects? - Python Help - Discussions on Python.org
October 25, 2022 - I have JSON input like this: { "accountID": "001-002-003-004", "accountClass": "Primary", "id": "1-2", "openTime": "2019-12-21T02:12:17.122Z", "priceDifference": "0.12345", } I would like to deserialise it in…
🌐
GeeksforGeeks
geeksforgeeks.org › python › read-write-and-parse-json-using-python
Read, Write and Parse JSON using Python - GeeksforGeeks
August 28, 2025 - If you have JSON data stored in a .json file (for example, downloaded from an API or stored locally), Python's json module makes it easy to read and convert it into a Python dictionary using the json.load() function.
Find elsewhere
🌐
Reddit
reddit.com › r/learnpython › really struggling with parsing json and dictionaries
r/learnpython on Reddit: Really struggling with parsing json and dictionaries
June 19, 2022 -

So I do cloud devops and have managed to create a lot of automations using BASH. For example, using AWS cli tools with the default output format of json, I have written many scripts using the AWS cli where I pipe the output to jq and get the results I am looking for. Combined with tools like jqplay, I have accomplished a lot. But there is a limit to BASH's usefulness when you are doing more complex operations. For that reason I have tried to lean in and do more stuff in python. I have gotten pretty good at modifying existing code and have written some pretty useful smaller python scripts.

But several times over the last few months, I keep trying and failing to really comprehend pythons handling of json. Such that I have given up and gone back to bash to complete a project.

So I am asking for help with two things from r/learnpython.

  1. Solving the particular problem I am having right now.

  2. Finally understanding how to parse any json with python.

ONE - - - - - - My current problem.

So using the code below, I have learned how to just get my data using boto3, convert it to json using json.dumps() and pretty print the json. (By the way, I need to use the standard json library here)

import boto3, json
from sys import argv

account = argv[1]

##THE FUNCTION BELOW WORKS FINE AND IS NOT REALLY RELEVANT TO MY QUESTION
def get_app_vpc_name(account): 
    if 'sbx' in account:
        return 'sbx-app-' + account
    elif 'dev' in account:
        return 'dev-app-' + account
    elif 'tst' in account:
        return 'tst-app-' + account
    elif 'prd' in account:
        return 'prd-app-' + account

## SETUP boto3 FOR AWS API 
boto3.setup_default_session(profile_name=account)
ec2 = boto3.client('ec2')

## GET A PARTICULAR VPC OUTPUT
def get_app_vpc_cidr_block(account):
    app_vpc_cidr_blk_name = '-'.join([account, 'app-vpc-cidr-block'])
    vpc = ec2.describe_vpcs(
    Filters=[
        {
            'Name': 'tag:Name',
            'Values': [
                get_app_vpc_name(account)
            ]
        }
    ]
    )
## CONVERT PYTHON DICTIONARY TO JSON USING json.dumps
    vpc_json = json.dumps(vpc, indent=6)

## PRETTY PRINT THE JSON
    print(vpc_json)

---- output FROM ABOVE CODE

{
      "Vpcs": [
            {
                  "CidrBlock": "10.215.188.0/22",
                  "DhcpOptionsId": "dopt-a370e999",
                  "State": "available",
                  "VpcId": "vpc-046b1f660f8337999",
                  "OwnerId": "999092819999",
                  "InstanceTenancy": "default",
                  "CidrBlockAssociationSet": [
                        {
                              "AssociationId": "vpc-cidr-assoc-027d7fe136117b999",
                              "CidrBlock": "10.215.188.0/22",
                              "CidrBlockState": {
                                    "State": "associated"
                              }
                        }
                  ],
                  "IsDefault": false,
                  "Tags": [
                        {
                              "Key": "network_tier",
                              "Value": "app"
                        },
                        {
                              "Key": "network_name",
                              "Value": "llh-devapp"
                        },
                        {
                              "Key": "ingress_support",
                              "Value": "false"
                        },
                        {
                              "Key": "usage",
                              "Value": "central-network"
                        },
                        {
                              "Key": "network_environment",
                              "Value": "dev"
                        },
                        {
                              "Key": "Name",
                              "Value": "dev-app-llh-devapp"
                        },
                        {
                              "Key": "account_name",
                              "Value": "N/A"
                        }
                  ]
            }
      ],
      "ResponseMetadata": {
            "RequestId": "9619218c-be04-4e36-bc4c-e8c8411a7999",
            "HTTPStatusCode": 200,
            "HTTPHeaders": {
                  "x-amzn-requestid": "9619218c-be04-4e36-bc4c-e8c8411a7999",
                  "cache-control": "no-cache, no-store",
                  "strict-transport-security": "max-age=31536000; includeSubDomains",
                  "content-type": "text/xml;charset=UTF-8",
                  "content-length": "1966",
                  "date": "Fri, 30 Sep 2022 19:40:09 GMT",
                  "server": "AmazonEC2"
            },
            "RetryAttempts": 0
      }
}

So I have made a lot of progress, but where I have struggled for weeks is parsing the json (or even the dictionary before I convert it to json) to get the exact data I need. Over and over and over, I keep running into type and other errors, but I have not succeeded in just parsing and get just the data I need. from the json/dictionary.

In this particular case, all I want is to get the CidrBlock from the data. I have had partial success by working with the code below, appended to the above script. (I will just show the function with the extra code)

def get_app_vpc_cidr_block(account):
    app_vpc_cidr_blk_name = '-'.join([account, 'app-vpc-cidr-block'])
    vpc = ec2.describe_vpcs(
    Filters=[
        {
            'Name': 'tag:Name',
            'Values': [
                get_app_vpc_name(account)
            ]
        }
    ]
    )
    vpc_json = json.dumps(vpc, indent=6)
    print(vpc_json)
    ## EXTRA CODE. USING DICTIONARY ITEMS. JSON CODE ABOVE IS IRELEVANT
    for key, value in vpc.items():
        results = value
        print(results[0]['CidrBlock'])

I would like to add that I have tried a LOT of differnet things to simply retrieve the CidrBlock data. Depending on whether or not I dumped it to json, I have gotten so many errors. (Often type errors, but no real success.

Here is what the code above returns after the json print. (NOTE that it does return the CidrBlock before the error).

10.215.188.0/22
Traceback (most recent call last):
  File "./caller.py", line 6, in <module>
     get_app_vpc_cidr_block(aws_acct)
  File "/var/lib/jenkins/testscripts/getAppVpcCidrBlock.py", line 35, in get_app_vpc_cidr_block
print(results[0]['CidrBlock'])
KeyError: 0

Regarding this problem in particular, my only question is this.

What is the correct pythonic way to retrieve the damned CidrBlock value from the above dictionary/json and assign the value to a variable?

2----MORE GENERAL JSON QUESTIONS

  • Do I even need to convert output like above from a dictionary to json? (After retrieving the data using boto3, it is of the dictionary type.)

  • Once you have an object (json or dictionary), what is the proper way to parse it and get particular data from it. In my case I will almost always want to retrieve certain values from the data and assign variables to those values.

  • To illustrate the above question, suppose I wanted to retrive the following values from the json and assign each value to a variable

    • CidrBLock

    • VpcId

    • AssociationId (from CidrBlockAssociationSet)

    • Name Value (from tags)

  • Is there a python tool similar to jqplay that I can use to play with json to find the right python to get the data I want?

Thanks and I appreciate any help y'all can give me on this.

Top answer
1 of 4
6
I have a feeling you're overthinking this. When you access a value using jq, you look through each level and determine which element you need from the next level. Sometimes, the item is an array, so you access it via its index; sometimes, it's an object, so you access it via its dictionary. Really it's exactly the same with Python, except you would be more explicit with the lookups. In this case, assuming you do only have one Vpc as shown in that JSON, you don't need any loops at all; you can just access it directly: cidr_block = vpc['Vpcs'][0]['CidrBlock'] The outer data structure is a dict, so access it via keys; its Vpc key contains a list, so access that via index; the only item in the list is a dict, so access it via the key you want. The reason why your loop gets the cidr and then fails is because it looks through every key in the outer dictionary; the first one is Vpc, so it works, but the second one is ResponseMetadata whose value is a dict, not a list, so you get the error as you're trying to index it like a list. And no, you don't need to dump it back to JSON; I'm not sure why you think you need to. JSON is a string format, which you can use to send data to and from an API, but you would only ever interact with that data in Python format.
2 of 4
2
quick demo: >>> import json >>> >>> data = {"A": {"x": 1, "y": 2}, "B": {"x" : 7, "y": 8, "z": 9}} >>> print(data, type(data)) {'A': {'x': 1, 'y': 2}, 'B': {'x': 7, 'y': 8, 'z': 9}} >>> >>> # turn a dict into a JSON string >>> s = json.dumps(data, indent=4) >>> print(s) { "A": { "x": 1, "y": 2 }, "B": { "x": 7, "y": 8, "z": 9 } } >>> >>> # turn a JSON string into a python dict >>> d = json.loads(s) >>> print(d, type(d)) {'A': {'x': 1, 'y': 2}, 'B': {'x': 7, 'y': 8, 'z': 9}} >>> >>> # access some data >>> print(d) {'A': {'x': 1, 'y': 2}, 'B': {'x': 7, 'y': 8, 'z': 9}} >>> print(d['A']) {'x': 1, 'y': 2} >>> print(d['A']['y']) 2 >>> print(d['B']['y']) 8 If you follow the basics here ^ then you should be able to do whatever you need to do... these are just nested (hierarchical) dicts and a notation (json) to express them as strings
🌐
ReqBin
reqbin.com › code › python › g4nr6w3u › python-parse-json-example
How to parse a JSON with Python?
To work with JSON in Python, you need to import the json module first, then call json.loads() method to parse the JSON string to a Python object.
🌐
ScrapingBee
scrapingbee.com › blog › how-to-read-and-parse-json-data-with-python
How to read and parse JSON data with Python | ScrapingBee
January 17, 2026 - You can use the json.load method to parse this into a Python object. Notice that this time it is load instead of loads. This slight distinction has a big impact on how either of these methods is used. json.loads, as you used previously, works ...
🌐
GitHub
github.com › oxylabs › python-parse-json
GitHub - oxylabs/python-parse-json: A tutorial for parsing JSON data with Python · GitHub
Similarly, if the JSON string contains true, it will be converted to Python equivalent boolean value, which is True. import json bool_string = 'true' bool_type = json.loads(bool_string) print(bool_type) # OUTPUT: True · The following table shows JSON objects and the Python data types after conversion.
Starred by 4 users
Forked by 4 users
Languages   Python
🌐
freeCodeCamp
freecodecamp.org › news › how-to-parse-json-in-python-with-examples
How to Parse JSON in Python – A Complete Guide With Examples
October 29, 2025 - The 's' in 'loads' stands for 'string', indicating it works with string data. After parsing, you have a regular Python dictionary that you can access with bracket notation using the JSON keys. Real-world JSON data rarely comes in flat structures. APIs typically return deeply nested objects containing multiple levels of data.
🌐
iProyal
iproyal.com › blog › parsing-reading-writing-json-with-python
How to Parse JSON in Python: Read, Write & Work With JSON Files
November 21, 2025 - ... The json.loads() function parses JSON data and converts JSON types into their equivalent Python data structures (for example, objects to dictionaries, arrays to lists, strings to str, and so on).
🌐
Python
docs.python.org › 3 › library › json.html
json — JSON encoder and decoder
2 weeks ago - Parse every input line as separate JSON object.
🌐
Real Python
realpython.com › python-json
Working With JSON Data in Python – Real Python
August 20, 2025 - Learn how to work with JSON data in Python using the json module. Convert, read, write, and validate JSON files and handle JSON data for APIs and storage.
🌐
Programiz
programiz.com › python-programming › json
Python JSON: Read, Write, Parse JSON (With Examples)
Suppose, you have a file named person.json which contains a JSON object. {"name": "Bob", "languages": ["English", "French"] } ... import json with open('path_to_file/person.json', 'r') as f: data = json.load(f) # Output: {'name': 'Bob', 'languages': ['English', 'French']} print(data) Here, we have used the open() function to read the json file. Then, the file is parsed using json.load() method which gives us a dictionary named data. If you do not know how to read and write files in Python, we recommend you to check Python File I/O.
🌐
Bright Data
brightdata.com › blog › how-tos › parse-json-data-with-python
Guide to Parsing JSON Data With Python
September 16, 2025 - The json.read() method then deserializes the text file or binary file containing a JSON document to the equivalent Python object. In this case, smartphone.json becomes a Python dictionary.
🌐
DataCamp
datacamp.com › tutorial › json-data-python
Python JSON Data: A Guide With Examples | DataCamp
December 3, 2024 - Here are some common functions from json library that are used for serialization and deserialization. This function is used to serialize a Python object into a JSON string. The dumps() function takes a single argument, the Python object, and returns a JSON string.
🌐
W3Schools
w3schools.com › PYTHON › python_json.asp
Python JSON
JSON is text, written with JavaScript object notation. Python has a built-in package called json, which can be used to work with JSON data. ... If you have a JSON string, you can parse it by using the json.loads() method.