Python Parse JSON array

103,454

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)
Share:
103,454

Related videos on Youtube

RomeNYRR
Author by

RomeNYRR

Updated on July 09, 2022

Comments

  • RomeNYRR
    RomeNYRR almost 2 years

    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"
        ]}
      ]
    
  • RomeNYRR
    RomeNYRR over 6 years
    Thank you @yklsga. Is the store_list variable meant to be an empty array to hold the data that's being parsed out?
  • yash
    yash over 6 years
    Yes store_list initially an empty list, because I thought you want to preserve the order of stores that you have in json_array. I am adding each individual store_details to the store_list, so that you can use them later in a particular order
  • RomeNYRR
    RomeNYRR over 6 years
    Thank you for the explanation; still learning and this helped alot!