python递归查找,Python-递归字符串查找

fromttpimportttp

template="""

asa# sh object-group id aws_criticalprd_us_west_2_app

object-group network aws_criticalprd_us_west_2_app

network-object 10.159.160.0 255.255.248.0

network-object 10.159.161.0 255.255.248.0

asa# sh object-group id aws_criticalprd_us_west_2_db

object-group network aws_criticalprd_us_west_2_db

network-object 10.159.168.0 255.255.248.0

asa# sh object-group id aws_criticalprd_us_west_2_app_db

object-group network aws_criticalprd_us_west_2_app_db

group-object aws_criticalprd_us_west_2_app

group-object aws_criticalprd_us_west_2_db

asa# sh object-group id aws_all_critical_vpcs

object-group network aws_all_critical_vpcs

group-object aws_criticalprd_us_west_2_app_db

group-object aws_critical_us_west_2_app_db

group-object aws_criticalprd_us_east_1_app_db

group-object aws_critical_us_east_1_app_db

group-object aws_criticalprd_eu_west_1_app_db

group-object aws_critical_eu_west_1_app_db

group-object aws_criticalprd_eu_central_1_app_db

group-object aws_critical_eu_central_1_app_db

object-group network {{ network_obj }}

group-object {{ group_obj | to_list | joinmatches }}

network-object {{ subnet | PHRASE | to_list | joinmatches }}

def lookup_objects(data, name=""):

# kick recursion off

if name == "":

return {key: lookup_objects(data, name=key) for key in data[0].keys()}

# if name in data, check if it contains subnet or run recursion for group_obj:

elif name in data[0]:

if "subnet" in data[0][name]:

return data[0][name]["subnet"]

return {

group_obj: lookup_objects(data, name=group_obj)

for group_obj in data[0][name].get("group_obj", [])

}

else:

return {}

"""parser=ttp(template=template)parser.parse()print(parser.result(format="json")[0])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值