如何解析#分隔字符串以访问嵌套Python字典?
解决嵌套字典按路径字符串访问值的问题
给定嵌套字典和以#分隔的键路径字符串,你可以通过以下两种简单方法实现目标:
方法一:循环遍历键列表
先将路径字符串拆分为键的列表,再从顶层字典开始逐层访问每个键对应的嵌套内容:
my_dict={ "key":{ "outbound_email_detail":{ "from":"value" } } } # 避免用input做变量名,它是Python内置函数 input_str = "key#outbound_email_detail#from" # 拆分路径为键列表 keys = input_str.split('#') current_value = my_dict # 逐层访问嵌套字典 for key in keys: current_value = current_value[key] print(current_value) # 输出:value
方法二:使用functools.reduce简化代码
利用reduce函数将每个键依次应用到字典上,一步得到目标值:
from functools import reduce my_dict={ "key":{ "outbound_email_detail":{ "from":"value" } } } input_str = "key#outbound_email_detail#from" keys = input_str.split('#') # reduce会把每个键依次传入lambda,从my_dict开始累积计算 result = reduce(lambda d, k: d[k], keys, my_dict) print(result) # 输出:value
内容的提问来源于stack exchange,提问作者PiaklA
相关产品推荐
相关产品推荐

