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" ]} ]
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.
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.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With