我正在努力研究如何定义一个列表,并在解析的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)
最后一句话是:
hash['map']['consistencyGroup'].setdefault(consistencyGroupId, []).append(volumeName)
setdefault
如果键存在,则返回该键的值;如果不存在,则将其设置为提供的默认值(在本例中为[]
),然后返回该值。你知道吗相关问题 更多 >
编程相关推荐