如果For循环的结果等价于Python

2024-06-24 13:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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循环的等效结果。我不知道该怎么做。你知道吗


Tags: inawsforsnapshotcurrent快照dictsnap
1条回答
网友
1楼 · 发布于 2024-06-24 13:19:05
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)

可能是我该怎么处理。。。你知道吗

相关问题 更多 >