2017-11-01 11 views
0

大規模なデータセットから配列を解析できる小さなPythonスクリプトをまとめようとしています。私は後でスクリプトでそれらを再生することができるように各オブジェクトからいくつかkey:valuesを引っ張って探しています。今のところ、結果を印刷したいだけです。私はオブジェクトを含むJSONファイルでこれを成功させましたが、配列のために働くように見えません。任意のヒントを大幅にPython Parse JSON array

をいただければ幸いです。ここに私のコードです:

# 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) 

はここでサンプルJSONデータです:あなたforループ文で

[ 
    { 
    "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" 
    ]} 
    ] 

答えて

1

json_arrayの各itemは辞書と辞書ですキーはstore_detailsではありません。だから私は少しプログラムを変更しました

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) 
+0

ありがとう@yklsga。 store_list変数は、解析されているデータを保持するための空の配列であることを意味していますか? – RomeNYRR

+0

はい 'store_list'は最初は空のリストです。あなたが' json_array'に持っている店舗の注文を保存したいと思ったからです。私は個々の 'store_details'を' store_list'に追加していますので、後で特定の順序で使うことができます – yash

+0

ありがとうございます。まだ学び、これは助けになりました! – RomeNYRR