2017-06-07 16 views
0

私のJSONデータは次のようになります。Pythonを使用してJSON値を反復処理するにはどうすればよいですか?

{ 
    "cameras": [ 
     { 
      "item": "810-00022", 
      "name": "front", 
      "serial": "000287" 
     }, 
     { 
      "item": "810-00022", 
      "name": "rear", 
      "serial": "000166" 
     }, 
     { 
      "item": "810-00022", 
      "name": "left", 
      "serial": "000492" 
     }, 
     { 
      "item": "810-00022", 
      "name": "right", 
      "serial": "000282" 
     }, 
     { 
      "item": "810-00022", 
      "name": "inside", 
      "serial": "000143" 
     } 
    ], 
    "item": "810-00023", 
    "mac": "14:1f:ba:90:01:16", 
    "name": 1623, 
    "serial": "000408" 
} 
{ 
    "cameras": [ 
     { 
      "item": "810-00032", 
      "name": "inside", 
      "serial": "000007" 
     }, 
     { 
      "item": "810-00022", 
      "name": "right", 
      "serial": "000941" 
     }, 
     { 
      "item": "810-00022", 
      "name": "front", 
      "serial": "000637" 
     }, 
     { 
      "item": "810-00022", 
      "name": "left", 
      "serial": "000430" 
     } 
    ], 
    "item": "810-00023", 
    "mac": "14:1f:ba:90:01:9e", 
    "name": 1599, 
    "serial": "000309" 
} 

どのようにすることができますI出力、私のエントリのそれぞれの名前(ないカメラ名)?

理論的には、次のように印刷することができます。16231599

私は以下を持っていますが、それはいくつかの理由のために働いていません。

json2 = open('C:\\Users\\' + comp_name + '\\Documents\\Python Firmware Script\\curl\\src\\systemidsout.json') 
json2_obj = json.load(json2) 

for i in json2_obj[]: 
    print i['name'] 

それは私の他のJSONファイルのために持っているように私は、上記の作品を期待していたが、私は推測しているレイアウトが可能性があるため、異なっていて、うまくいきません。

JSONファイル内に「名前」の値を出力するにはどうすればよいですか?

さらに、ボーナスの質問として、私のカメラアレイ内の個々の名前もどのように出力できますか?

答えて

3

for i in json2_obj[]:i in json2_obj:に変更すると動作します。 あなたが出力するカメラアレイ内の個々の名前をしたい場合は、あなたのforループ内で

for j in i['cameras']: 
    print(j['name']) 

を使用しています。

JSONデータには実際には2つのJSONがあります。 1つのファイルからそれらを読み取る場合は、[{...},{...}]形式に変更します。そうしないと、json.load()がエラーを発生させる可能性があります。

+0

私は次の 'for i for json2_objを使用すると、' stringインデックスは整数でなければなりません。 '' print i ['name'] ' – juiceb0xk

+0

私のJSONのフォーマットを修正しました。今すぐ動作します。ありがとうございました! – juiceb0xk

関連する問題