Python dictを識別番号式にする

[code]

    persons = [{"ID": 1001, "NAME": "YAMANE", "AGE": 31},
               {"ID": 1001, "NAME": "SHIMADA", "AGE": 51},
               {"ID": 1002, "NAME": "AMANE", "AGE": 13},
               {"ID": 1003, "NAME": "OKADA", "AGE": 21}]
    
[/code]

が入っています。注目点としてIDは重複します。

こちらを↓のような形にしたいです。

[code]

    persons[[1001][{"NAME": "YAMANE", "AGE": 31},{"NAME": "SHIMADA", "AGE": 51}],
          [1002][{"NAME": "AMANE", "AGE": 13}],
          [1003][{"NAME": "OKADA", "AGE": 21}]]
    
[/code]

pymysqlのfetchallを使用すると、データベースの行ごとにdict形式で配列されます。

私が試して失敗した例：

[code]

    person_box = []
    for person in persons:
        person_box[person['ID']] = person
    
[/code]




defaultdict使えばできるのではないでしょうか？  

[code]

    from collections import defaultdict
    
    persons = [{"ID": 1001, "NAME": "YAMANE", "AGE": 31},
               {"ID": 1001, "NAME": "SHIMADA", "AGE": 51},
               {"ID": 1002, "NAME": "AMANE", "AGE": 13},
               {"ID": 1003, "NAME": "OKADA", "AGE": 21}]
    
    person_box = defaultdict(list)
    for person in persons:
        person_box[person['ID']].append(person)
    
[/code]




defaultdict使えばできるのではないでしょうか？  

[code]

    from collections import defaultdict
    
    persons = [{"ID": 1001, "NAME": "YAMANE", "AGE": 31},
               {"ID": 1001, "NAME": "SHIMADA", "AGE": 51},
               {"ID": 1002, "NAME": "AMANE", "AGE": 13},
               {"ID": 1003, "NAME": "OKADA", "AGE": 21}]
    
    person_box = defaultdict(list)
    for person in persons:
        person_box[person['ID']].append(person)
    
[/code]

