Decoding nested JSON with multiple 'for' loops

后端 未结 3 1168

I\'m new to Python (last week), and have reached my limit. Spent three days on this, most of my time in stackoverflow, but I cannot work out how to go any further!

T

3条回答
  •  春和景丽
    2021-01-16 15:49

    First of all, don't use an index but loop directly over the lists; that way you can give them meaningful names. The top-level is a list of entries, each entry is a dictionary with a 'innings' key, and each innings is a list of dictionaries, with, among others, a wickets key:

    for entry in data:
        for inning in entry['innings']:
            print inning['wickets']
    

    This prints:

    >>> for entry in data:
    ...     for inning in entry['innings']:
    ...         print inning['wickets']
    ... 
    10
    9
    0
    0
    

    This makes it easier to add information at each level too:

    >>> for entry in data:
    ...     print entry['description']
    ...     for i, inning in enumerate(entry['innings']):
    ...         print 'Innings {}: {} wickets'.format(i + 1, inning['wickets'])
    ... 
    Rest of Sri Lanka v Sri Lanka A at Pallekele, May 14, 2013
    Innings 1: 10 wickets
    Innings 2: 9 wickets
    63rd match: Royal Challengers Bangalore v Kings XI Punjab at Bangalore, May 14, 2013
    Innings 1: 0 wickets
    Innings 2: 0 wickets
    64th match: Chennai Super Kings v Delhi Daredevils at Chennai, May 14, 2013
    

提交回复
热议问题