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
🌐
W3Schools
w3schools.com › python › python_json.asp
Python JSON
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.
Discussions

Python Parse JSON array - Stack Overflow
I'm trying to put together a small python script that can parse out array's out of a large data set. I'm looking to pull a few key:values from each object so that I can play with them later on in the More on stackoverflow.com
🌐 stackoverflow.com
Using Python to Parse a JSON Object
I work as data engineer and we use marshmallow to deserialize JSON from application API's into Python objects. It's very nice because it also allows for data validation etc. We also serialize back into JSON for putting the objects into target applications. https://circleci.com/blog/object-validation-and-conversion-with-marshmallow/ More on reddit.com
🌐 r/PythonLearning
12
17
1 week ago
Handling JSON files with ease in Python
Looks good. Considered discussing dataclasses/pydantic with json? I found that these go well together More on reddit.com
🌐 r/Python
55
421
May 29, 2022
How to parse different part of json file (Newbie here)
I have created a python code that extracts jitter, latency, link, packet loss, timestamp from json file to csv file. However, inside this json file, there are multiple tests done (e.g. bronek 1, bronek 2, bronek 3, etc.) that under these testings have pair keys of jitter, latency, link, packet ... More on discuss.python.org
🌐 discuss.python.org
0
September 27, 2021
🌐
Python
docs.python.org › 3 › library › json.html
json — JSON encoder and decoder
3 weeks ago - If None (the default), it is equivalent to float(num_str). This can be used to parse JSON floats into custom datatypes, for example decimal.Decimal.
🌐
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
🌐
W3Schools
w3schools.com › python › gloss_python_json_parse.asp
Python JSON Parse
The result will be a Python dictionary. ... import json # some JSON: x = '{ "name":"John", "age":30, "city":"New York"}' # parse x: y = json.loads(x) # the result is a Python dictionary: print(y["age"]) Try it Yourself »
🌐
Zyte
zyte.com › home › blog › json parsing with python [practical guide]
JSON Parsing with Python [Practical Guide]
July 6, 2023 - To read JSON data, you can use the built-in json module (JSON Encoder and Decoder) in Python. The json module provides two methods, loads and load, that allow you to parse JSON strings and JSON files, respectively, to convert JSON into Python ...
Find elsewhere
🌐
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.
Top answer
1 of 2
46

In your for loop statement, Each item in json_array is a dictionary and the dictionary does not have a key store_details. So I modified the program a little bit

import json

input_file = open ('stores-small.json')
json_array = json.load(input_file)
store_list = []

for item in json_array:
    store_details = {"name":None, "city":None}
    store_details['name'] = item['name']
    store_details['city'] = item['city']
    store_list.append(store_details)

print(store_list)
2 of 2
0

If you arrived at this question simply looking for a way to read a json file into memory, then use the built-in json module.

with open(file_path, 'r') as f:
    data = json.load(f)

If you have a json string in memory that needs to be parsed, use json.loads() instead:

data = json.loads(my_json_string)

Either way, now data is converted into a Python data structure (list/dictionary) that may be (deeply) nested and you'll need Python methods to manipulate it.


If you arrived here looking for ways to get values under several keys as in the OP, then the question is about looping over a Python data structure. For a not-so-deeply-nested data structure, the most readable (and possibly the fastest) way is a list / dict comprehension. For example, for the requirement in the OP, a list comprehension does the job.

store_list = [{'name': item['name'], 'city': item['city']} for item in json_array]
# [{'name': 'Mall of America', 'city': 'Bloomington'}, {'name': 'Tempe Marketplace', 'city': 'Tempe'}]

Other types of common data manipulation:

  1. For a nested list where each sub-list is a list of items in the json_array.

    store_list = [[item['name'], item['city']] for item in json_array]
    # [['Mall of America', 'Bloomington'], ['Tempe Marketplace', 'Tempe']]
    
  2. For a dictionary of lists where each key-value pair is a category-values in the json_array.

    store_data = {'name': [], 'city': []}
    for item in json_array:
        store_data['name'].append(item['name'])
        store_data['city'].append(item['city'])
    # {'name': ['Mall of America', 'Tempe Marketplace'], 'city': ['Bloomington', 'Tempe']}
    
  3. For a "transposed" nested list where each sub-list is a "category" in json_array.

    store_list = list(store_data.values())
    # [['Mall of America', 'Tempe Marketplace'], ['Bloomington', 'Tempe']]
    
🌐
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 - This guide covers practical JSON parsing techniques you can use in your projects right away. Let’s get started! ... JSON represents data using a simple syntax with six data types: objects (key-value pairs), arrays, strings, numbers, Booleans, and null. When Python parses JSON, these types map directly to Python equivalents:
🌐
GitHub
github.com › oxylabs › python-parse-json
GitHub - oxylabs/python-parse-json: A tutorial for parsing JSON data with Python · GitHub
A tutorial for parsing JSON data with Python. Contribute to oxylabs/python-parse-json development by creating an account on GitHub.
Starred by 4 users
Forked by 4 users
Languages   Python
🌐
Veryfi
veryfi.com › home › engineering › parse json with python
Parse JSON with Python | Veryfi
May 19, 2023 - In addition to the json module, there are also several third-party libraries available to parse JSON with Python. One popular library is the jsonpath-rw library, which allows you to extract specific values from a JSON object using a JSONPath expression.
🌐
NetworkAcademy
networkacademy.io › learning path: ccna automation (200-901) ccnaauto › data formats and data models › parsing json with python
Parsing JSON with Python | NetworkAcademy.IO
Import JSON moduleTo work with JSON data (string or JSON file), first, it has to be 'translated' into the python data structure. In this lesson, we are going to use python's built-in module json to do it.
🌐
CodeSignal
codesignal.com › learn › courses › hierarchical-and-structured-data-formats › lessons › parsing-json-files-in-python
Parsing JSON Files in Python
In this lesson, you've learned to parse JSON files in Python using the json module. You've revisited JSON's structure, used the json.load() function to read JSON data from files, and accessed various elements within JSON data.
🌐
DevGenius
blog.devgenius.io › parsing-json-data-using-python-fd615f74e40f
Parsing JSON Data Using Python. My name is Jared Paubel, and this is my… | by Jay | Dev Genius
February 24, 2023 - One library that is popular for parsing through data is the pandas library, which is used for data manipulation and analysis. For example, we can load the same JSON data as a pandas dataframe, and use the head method to get just the first five results of the data set:
🌐
Reddit
reddit.com › r/pythonlearning › using python to parse a json object
r/PythonLearning on Reddit: Using Python to Parse a JSON Object
1 week ago -

Being retired, I’ve embarked on a project to keep my brain working as well as keeping my dwindling Python skills from completely disappearing.

I’ve been tinkering around with an API that allows me to grab time sequence weather data from a DOT weather station. As with most APIs the data is returned as a json object which to me (and Python) is a really ugly dictionary embedded with subsequent dictionaries that have keys and associated lists/tuples of values. For example one such dictionary has the AirTemp as the key with quarter hour values for as many hours I scrape. There are as many of these dictionaries as weather variables I choose to download : wind speed,direction, etc etc.

My approach to parsing the json object into something readable is to filter out each of the weather variable data into their own dictionary followed by creating a list of all the values in the data dictionary.

Finally, I zip those lists together and create a dictionary of the date/time variable as the key with the various weather variable values in a list associated to that specific date/time.

I’m just wondering if there might be different approach would be more efficient (and Pythonic). Sometimes I feel like I'm beating data into submission rather than processing it. This is the first time ever scripting to an API and parsing a json object.

import requests,json

weather_url = "https://api.weatherdata.com/v2/stations/timeseries?&token=MyToken&units=temp|f,speed|mph&stid=UTHEB&vars=wind_speed,wind_direction,air_temp&obtimezone=local&start=202603031700&end=202603032200"

response = requests.get(weather_url)
responseStatusCode = (response.status_code)

if responseStatusCode == 200:
    print(f"Connected to Weather Data Server; data incoming")
    jsonStr = response.json()

    tempDict = jsonStr['STATION'][0]#dictionary in json object with data
    obsDict = tempDict['OBSERVATIONS']#dictionary in station of data

    #begin list creation:

    dateList = obsDict['date_time']
    localDateList =[i.replace("T"," ").replace(":00-0700","-MT").replace("TimeStamp: ","") for i in dateList]

    airTempList = obsDict['air_temp_set_1']
    windSpeedList = obsDict['wind_speed_set_1']
    windDirectionList = obsDict['wind_direction_set_1']

    displayDict= {date: [speed,direction,temp]
    for date,speed,direction,temp in zip(localDateList,windSpeedList,windDirectionList,airTempList)}
    for key,value in displayDict.items():
        print(f"Date-Time: {key} WindSpeed MPH: {value[0]} WindDirection Degrees: {value[1]}  AirTemp: {value[2]}")
else:
    print(f"Unable to connect to Weather Data Server: try again later")
🌐
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.
🌐
Reddit
reddit.com › r/python › handling json files with ease in python
r/Python on Reddit: Handling JSON files with ease in Python
May 29, 2022 -

I have finished writing the third article in the Data Engineering with Python series. This is about working with JSON data in Python. I have tried to cover every necessary use case. If you have any other suggestions, let me know.

Working with JSON in Python
Data Engineering with Python series

🌐
Python.org
discuss.python.org › python help
How to parse different part of json file (Newbie here) - Python Help - Discussions on Python.org
September 27, 2021 - I have created a python code that extracts jitter, latency, link, packet loss, timestamp from json file to csv file. However, inside this json file, there are multiple tests done (e.g. bronek 1, bronek 2, bronek 3, etc.) that under these testings have pair keys of jitter, latency, link, packet ...
🌐
Reddit
reddit.com › r/learnpython › better way to parse insanely complex nested json data
r/learnpython on Reddit: Better way to parse insanely complex nested json data
July 15, 2024 -

Hi all,

Long time programmer here, but new to Python. This will be a long and, I think, complicated issue, so appreciate anyone who reads through it all and has any suggestions. I've looked up different ways to pull this data and don't seem to be making any progress. I'm sure there's a much better way.

I'm writing a program that will connect to our library to pull a list of everything we have checked out and I want to output a sorted list by due date and whether it has holds or not. I've got the code working to log in and pull a json data structure, but I cannot get it to export the data in the correct order. The json data is(to me) hideously complex with some data(due date) in one section and other data in another section. I'm able to pull the fields I want, but keeping them together is proving challenging.

For example, the title and subtitle are in the 'bibs/briefinfo' section with a key value of 'title' or 'subtitle'. Due Date is also in the 'checkouts' section with a key value of 'dueDate'. When I loop through them, though, the Titles are in one order, the due dates are in another order and the subtitles another.

I used BeautifulSoup because it's a webpage with json in it, so used BS to read the webpage.

I'm wanting to pull the following fields for each book so I can display the info for each book:

title, subtitle, contentType from briefinfo section

duedate from checkouts section

heldcopies and availablecopies from the availability section

Here's the pertinent section of my code:

soup = BeautifulSoup(index_page.text, 'html.parser')
            all_scripts = soup.find_all('script', {"type":"application/json"})

            for script in all_scripts:
                jsondata = json.loads(script.text)
                print(jsondata)
                
                output = []
                for i in item_generator(jsondata, "bibTitle"):
                    ans = {i}
                    print(i)
                    output.append(ans)

                for i in item_generator(jsondata, "dueDate"):
                    ans = {i}
                    output.append(ans)

                print("Subtitle----------------------")
                for i in item_generator(jsondata, "subtitle"):
                    ans = {i}
                    print(i)
                    output.append(ans)

print(output)

Here's the json output from my print statement so I can see what I'm working with. I tried to format it so it's easier to read. I removed a lot of other elements to keep the size down. Hopefully I didn't break any of the brackets.

{

'app':

{

'coreCssFingerprint': '123123123',

'coreAssets':

{

'cdnHost': 'https://xyz.com',

'cssPath': '/dynamic_stylesheet',

'defaultStylesheet': 'xyz.css'

},

},

'entities':

{

'listItems': {},

'cards': {},

'accounts':

{

'88888888':

  {
  'barcode': '999999999',
  'expiryDate': None, 
  'id': 88888888, 
  }

},

'shelves':

  {
  '88888888': 
  	{
  	'1111222222': 

{

'id': 1111222222,

'metadataId': 'S00A1122334',

'shelf': 'for_later',

'privateItem': True,

'dateAdded': '2023-12-30',

},

  	}
  }, 

'users':

  {
  '88888888': 
  	{ 
  	'accounts': \[88888888\], 
  	'status': 'A', 
  	'showGroupingDebug': False, 
  	'avatarUrl': '', 
  	'id': 88888888, 
  	}
  }, 
  'eventPrograms': {}, 
  'checkouts': 
  	{
  	'112233445566778899': 

{

'checkoutId': '112233445566778899',

'materialType': 'PHYSICAL',

'dueDate': '2024-08-26',

'metadataId': 'S99Z000000',

'bibTitle': "The Lord of the Rings"

},

  	'998877665544332211': 

{

'checkoutId': 998877665544332211',

'materialType': 'PHYSICAL',

'dueDate': '2024-08-26',

'metadataId': 'S88Y00000',

'bibTitle': 'The Lord of the Rings'

},

  	}, 
  'eventSeries': {}, 
  'catalogBibs': {},
  'bibs': 
  	{
  	'S88Y00000': 

{

'id': 'S88Y00000',

'briefInfo':

{

'superFormats': ['BOOKS', 'MODERN_FORMATS'],

'genreForm': [],

'callNumber': '123.456',

'authors': ['Tolkien, J.R.R.'],

'metadataId': 'S88Y00000',

'jacket':

{

'type': 'hardcover',

'local_url': None

},

'contentType': 'FICTION',

'format': 'BK',

'subtitle': 'The Two Towers',

'title': 'The Lord of the Rings',

'id': 'S88Y00000',

},

'availability':

{

'heldCopies': 0,

'singleBranch': False,

'metadataId': 'S88Y00000',

'statusType': 'AVAILABLE',

'totalCopies': 3,

'availableCopies': 2

}

},

'S77X12345':

{

'id': 'S77X12345',

'briefInfo':

{

'superFormats': ['BOOKS', 'MODERN_FORMATS'],

'genreForm': [],

'callNumber': '123.457',

'authors': ['Tolkien, J.R.R.'],

'metadataId': 'S77X12345',

'jacket':

{

'type': 'hardcover',

'local_url': None

},

'contentType': 'FICTION',

'format': 'BK',

'subtitle': 'The Fellowship of the Ring',

'title': 'The Lord of the Rings',

'id': 'S77X12345',

},

'availability':

{

'heldCopies': 0,

'singleBranch': False,

'metadataId': 'S77X12345',

'statusType': 'AVAILABLE',

'totalCopies': 2,

'availableCopies': 1

}

}

Anyone know of a better way to parse this data? Thanks!

Top answer
1 of 4
5
Two suggestions: First, when you want to print a json thing, you can do print(json.dumps(thing, indent=2)). This will apply indentation and newlines to make it clearer what the nested structure is. Second, the input data is what it is - but internal to your code you don't have to keep it that way. My suggestion would be to make a dataclass with the fields you care about, and write a classmethod for that that class to extract what you care about from the json. Then in your code, use instances of your class. I'm on my phone right now, but I'll edit with a small example of what I mean in a little bit. gross_nested_json = { 'books': [ { 'name': 'whatever', 'details1': { 'due_date': 'whenever', }, 'details2': { 'whatever_else': 'thing', } } ] } import dataclasses import typing as ty @dataclasses.dataclass class BookInfo: # If you're not familiar with these, google python dataclass, they're nice name: str due_date: str whatever: str @classmethod def from_gross_json(cls, gross_json: dict) -> ty.Self: return cls( name=gross_json['name'], due_date=gross_json['details1']['due_date'] whatever=gross_json['details2']['whatever_else'] ) books = [BookInfo.from_gross_json(gross_json) for gross_json in gross_nested_json['books'] You'll have to adjust for the pecularities of your particular input data, but if you make the data less gross for within your code consumption, it'll make the rest of your program nicer to write.
2 of 4
2
That's a rather awkward structure alright. Are the records to be linked by metadataId? [In]: for checkout in data['entities']['checkouts'].values(): print(checkout['bibTitle'], checkout['dueDate'], checkout['metadataId']) for bib in data['entities']['bibs'].values(): print(bib['briefInfo']['title'], bib['briefInfo']['subtitle'], bib['briefInfo']['metadataId']) print(bib['availability']['heldCopies'], bib['availability']['availableCopies']) [Out]: # The Lord of the Rings 2024-08-26 S99Z000000 # The Lord of the Rings 2024-08-26 S88Y00000 # The Lord of the Rings The Two Towers S88Y00000 # 0 2 # The Lord of the Rings The Fellowship of the Ring S77X12345 # 0 1
🌐
ReqBin
reqbin.com › code › python › g4nr6w3u › python-parse-json-example
How to parse a JSON with Python?
Nested JSON objects will also be processed and included in the dictionary (see example below). To parse a JSON file, use the json.load() paired method (without the "s"). In this Python Parse JSON example, we convert a JSON data string into a ...