Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Parse JSON array

Tags:

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 them back later on in the script. For now I just want to print the results. I've had success doing this with JSON files that only contained objects, but can't seem to get it working for an array. Any tips would be greatly appreciated

Here's my code:

# Load up JSON Function import json  # Open our JSON file and load it into python input_file = open ('stores-small.json') json_array = json.load(input_file)  # Create a variable that will take JSON and put it into a python dictionary store_details = [         ["name"],         ["city"]     ]  # Learn how to loop better =/ for stores in [item["store_details"] for item in json_array]  # Print my results print(store_details) 

Here's the sample JSON Data:

[   {     "id": 1000,     "type": "BigBox",     "name": "Mall of America",     "address": "340 W Market",     "address2": "",     "city": "Bloomington",     "state": "MN",     "zip": "55425",     "location": {       "lat": 44.85466,       "lon": -93.24565     },     "hours": "Mon: 10-9:30; Tue: 10-9:30; Wed: 10-9:30; Thurs: 10-9:30; Fri: 10-9:30; Sat: 10-9:30; Sun: 11-7",     "services": [       "Geek Squad Services",       "Best Buy Mobile",       "Best Buy For Business"     ]   },   {     "id": 1002,     "type": "BigBox",     "name": "Tempe Marketplace",     "address": "1900 E Rio Salado Pkwy",     "address2": "",     "city": "Tempe",     "state": "AZ",     "zip": "85281",     "location": {       "lat": 33.430729,       "lon": -111.89966     },     "hours": "Mon: 10-9; Tue: 10-9; Wed: 10-9; Thurs: 10-9; Fri: 10-10; Sat: 10-10; Sun: 10-8",     "services": [       "Windows Store",       "Geek Squad Services",       "Best Buy Mobile",       "Best Buy For Business"     ]}   ] 
like image 575
RomeNYRR Avatar asked Nov 01 '17 17:11

RomeNYRR


People also ask

How do you parse a JSON list in Python?

Parse JSON - Convert from JSON to Python If you have a JSON string, you can parse it by using the json.loads() method. The result will be a Python dictionary.

How does Python fetch JSON data?

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. To get the file object from a file path, Python's open() function can be used.


1 Answers

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) 
like image 173
yash Avatar answered Sep 21 '22 15:09

yash