从map中获取列表,其中key包含路径(如"child_1_name"),可以通过以下步骤实现:
以下是一个示例代码,演示了如何从map中获取包含路径的列表:
def get_list_from_map(map_data, path):
keys = path.split("_") # 拆分路径字符串为各个层级的key
value = map_data
for key in keys:
if isinstance(value, dict):
value = value.get(key)
elif isinstance(value, list):
try:
index = int(key)
value = value[index]
except (ValueError, IndexError):
value = None
else:
value = None
if value is None:
break
if isinstance(value, list):
return value
else:
return []
# 示例用法
map_data = {
"child": [
{"name": "Alice"},
{"name": "Bob"},
{"name": "Charlie"}
]
}
path = "child_1_name"
result = get_list_from_map(map_data, path)
print(result) # 输出:["Bob"]
在这个例子中,我们首先将路径字符串"child_1_name"拆分为["child", "1", "name"]。然后,我们从map的根节点开始,根据第一个key "child" 获取对应的value,这是一个列表。接着,我们根据下一个key "1" 获取列表中的第二个元素,即{"name": "Bob"}。最后,根据最后一个key "name" 获取该元素中的"name"值,得到最终结果["Bob"]。
对于这个问题,腾讯云没有特定的产品或链接与之相关。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云