首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -解析Junos路由器配置以显示一行数据

Python -解析Junos路由器配置以显示一行数据
EN

Stack Overflow用户
提问于 2020-12-03 09:53:35
回答 1查看 158关注 0票数 0

我有以下Junos路由器配置部分。我正在尝试解析数据以显示下面的结果。我已经尝试了许多方法,但我遇到的问题是,我似乎无法为每个接口(lo0.2和xe-1/0/2.1210)获得唯一的行。如果您能帮助我了解实现所需输出的最佳方式,我将非常感激。我正在尝试做的是解析这些路由器配置,在excel中以行的形式显示关键数据,这也将包括接口配置项。

我尝试遍历配置并查找匹配的行,但我永远无法同时获得这两个接口。我只需要一些关于如何做到这一点的想法。

代码语言:javascript
复制
for line in config:
    if line.startswith('set routing-instances'):
        if 'options router-id' in line:
            self.router_id = line.split()[5]
        elif 'interface' in line:
            self.interface = line.split()[5]
        elif 'vrf-import' in line:
            self.vrf_import_policy = line.split()[4]
        elif 'vrf-export' in line:
            self.vrf_export_policy = line.split()[4]

    set routing-instances redwood-ca routing-options router-id 10.10.10.1
    set routing-instances redwood-ca routing-options autonomous-system 620
    set routing-instances redwood-ca routing-options autonomous-system independent-domain no-attrset
    set routing-instances redwood-ca protocols bgp path-selection always-compare-med
    set routing-instances redwood-ca protocols bgp path-selection external-router-id
    set routing-instances redwood-ca protocols bgp family inet unicast
    set routing-instances redwood-ca protocols bgp hold-time 30
    set routing-instances redwood-ca protocols bgp log-updown
    set routing-instances redwood-ca instance-type vrf
    set routing-instances redwood-ca interface lo0.2
    set routing-instances redwood-ca interface xe-1/0/2.1210
    set routing-instances redwood-ca route-distinguisher 10.10.10.1:100
    set routing-instances redwood-ca vrf-import redwood-ca-vrf-import
    set routing-instances redwood-ca vrf-export redwood-ca-vrf-export
    set routing-instances redwood-ca vrf-table-label
    
 
    Desired Output
    vrf         router-id       interface           vrf-import              vrf-export
    redwood-ca  10.10.10.1      lo0.2               redwood-ca-vrf-import   redwood-ca-vrf-export
    redwood-ca  10.10.10.1      xe-1/0/2.1210       redwood-ca-vrf-import   redwood-ca-vrf-export

我很感谢你能提供的任何帮助。是否有将垂直类型数据转换为水平行的标准/最佳实践方法?

提前感谢大家的帮助。

麦克

EN

回答 1

Stack Overflow用户

发布于 2021-07-07 03:55:37

你可以使接口作为列表,并在每次找到时添加匹配项。

代码语言:javascript
复制
**interface = list()**
for line in config:
    if line.startswith('set routing-instances'):
        if 'options router-id' in line:
            router_id = line.split()[5]
        elif 'interface' in line:
            **interface.append(line.split()[4])**
        elif 'vrf-import' in line:
            vrf_import_policy = line.split()[4]
        elif 'vrf-export' in line:
            vrf_export_policy = line.split()[4]

print interface

输出- 'lo0.2','xe-1/0/2.1210‘

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65118760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档