我有一个for循环,它正在拉动AWS快照,然后将快照放入dict
。
for snapshot in current_snapshots:
dict1 = {snapshotYear:{snapshotMonth:{snapshotDay:[[snapshot]]}}}
print dict1
这正确打印出来
{"2014": {"7": {"22": [["Snapshot:snap-XXXXXXXX"]]}}}
{"2014": {"7": {"22": [["Snapshot:snap-YYYYYYYY"]]}}}
我希望能够说如果snapshotDay
相同,则应该打印出来
{"2014": {"7": {"22": [["Snapshot:snap-XXXXXXXX"], ["Snapshot:snap-YYYYYYYY"]]}}}
,如果它是相同的snapshotMonth
打印
{"2014": {"7": {"22": [["Snapshot:snap-XXXXXXXX"]}, {"15": [["Snapshot:snap-YYYYYY"]]}}}
这需要设置for循环等效的结果。我不知道该怎么做。
答案 0 :(得分:2)
from collections import defaultdict
defaultdict_dict=lambda :defaultdict(defaultdict_dict)
data = defaultdict(defaultdict_dict)
for snapshot in current_snapshots:
try:
data[snapshotYear][snapshotMonth][snapshotDay].append(snapshot)
except AttributeError:
data[snapshotYear][snapshotMonth][snapshotDay] = [snapshot]
print json.dumps(data)
可能就是我如何处理它......