Python parsowanie jsona

0

Mam takiego jsona z testu websokcetowego:

{
   "Chrome/48.0.2564.82": {
      "1.1.1": {
         "behavior": "OK",
         "behaviorClose": "OK",
         "duration": 82,
         "remoteCloseCode": 1000,
         "reportfile": "chrome_48_0_2564_82_case_1_1_1.json"
      },
      "1.1.2": {
         "behavior": "OK",
         "behaviorClose": "OK",
         "duration": 86,
         "remoteCloseCode": 1000,
         "reportfile": "chrome_48_0_2564_82_case_1_1_2.json"
      },
      "1.1.3": {
         "behavior": "OK",
         "behaviorClose": "OK",
         "duration": 85,
         "remoteCloseCode": 1000,
         "reportfile": "chrome_48_0_2564_82_case_1_1_3.json"
      },
      "1.1.4": {
         "behavior": "OK",
         "behaviorClose": "OK",
         "duration": 84,
         "remoteCloseCode": 1000,
         "reportfile": "chrome_48_0_2564_82_case_1_1_4.json"
      },
      "1.1.5": {
         "behavior": "OK",
         "behaviorClose": "OK",
         "duration": 84,
         "remoteCloseCode": 1000,
         "reportfile": "chrome_48_0_2564_82_case_1_1_5.json"
      },
      "1.1.6": {
         "behavior": "OK",
         "behaviorClose": "OK",
         "duration": 281,
         "remoteCloseCode": 1000,
         "reportfile": "chrome_48_0_2564_82_case_1_1_6.json"
      }, 

Jak dobrac sie w petli do obiektow "1.1.1", "1.1.2" itd. ? Wypisac pojednyczo potrafie, ale dobrac sie w petli juz gorzej.

import json
from pprint import pprint

with open('index.json') as data_file:    
    data = json.load(data_file)
print data['Chrome/48.0.2564.82']['1.1.1']

Kombinowalem cos takiego, ale to nie zadziala :

for item in data['Chrome/48.0.2564.82']
   print item
1

To python 2, więc:

for item in data['Chrome/48.0.2564.82'].itervalues()
   print item

Domyślnie jak iterujesz przez słownik to iteruje po kluczach, czyli twoja wersja to to samo co:

for key in data['Chrome/48.0.2564.82'].iterkeys()
   print key

Mógłbyś tak iterować, ale wtedy musiałbyć się odwoływać za pomocą data['Chrome/48.0.2564.82'][key], co jest brzydsze ;)

0

Niestety rowniez nie dziala. Blad:

for item in data['Chrome/48.0.2564.82'].itervalues()
                                                   ^
SyntaxError: invalid syntax
1

Dwukropek na końcu :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1