使用lis构建嵌套词典

2024-10-01 22:40:10 发布

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

我正在努力研究如何定义一个列表,并在解析的json文档中循环附加到它。我无法附加到未定义的列表。但我不想设置为空列表,因为这会覆盖下一次迭代中包含的值。这就是我所拥有的:

from collections import defaultdict
nested_dict = lambda: defaultdict(nested_dict)
hash = nested_dict()
   for e in decoded_jason['volumeList']:
       volumeName = e['name']
       volumeType = e['volumeType']
       if volumeType == 'Snapshot':
          consistencyGroupId = e['consistencyGroupId']
          #I am missing a step here to initialize empty list so I can append
          hash['map']['consistencyGroup'][consistencyGroupId].append(volumeName)

如果在append之前执行此操作,它会工作,但在下一次迭代中,列表将设置为空:

hash['map']['consistencyGroup'][consistencyGroupId]=[]
hash['map']['consistencyGroup'][consistencyGroupId].append(volumeName)

Tags: 文档jsonmap列表定义hashdictnested
1条回答
网友
1楼 · 发布于 2024-10-01 22:40:10

最后一句话是:

hash['map']['consistencyGroup'].setdefault(consistencyGroupId, []).append(volumeName)

setdefault如果键存在,则返回该键的值;如果不存在,则将其设置为提供的默认值(在本例中为[]),然后返回该值。你知道吗

相关问题 更多 >

    热门问题