第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用python將日志文件轉(zhuǎn)換為字典格式

使用python將日志文件轉(zhuǎn)換為字典格式

瀟湘沐 2022-06-28 10:42:59
我需要使用 python 將日志文件轉(zhuǎn)換為字典格式show_pcs = 1     Po1(SU)     Eth      LACP      Eth1/24(P)   Eth2/24(P)   Eth3/24/10(P)                                     Eth4/24(P)   2     Po2(SU)     Eth      LACP      Eth1/1/1(P)  Eth1/1/2(P)  Eth1/1/3(P)                                     Eth1/1/4(P)  Eth2/1/1(P)  Eth2/1/2(P)                                     Eth2/1/3(P)  Eth2/1/4(P)  3     Po3(SD)     Eth      NONE      --4     Po4(SD)     Eth      NONE      --5     Po5(SD)     Eth      LACP      Eth1/3/1(P)  Eth1/3/2(P)  Eth1/3/3(P)                                     Eth101/3/4(D)  Eth2/3/1(P)  Eth2/3/2(P)                                     Eth2/3/3(P)  Eth2/3/4(D)  6     Po6(SU)     Eth      LACP      Eth1/14/1(P)  Eth1/14/2(P)  Eth1/14/3(P)                                     Eth1/14/4(P)  Eth102/14/1(P)  Eth2/14/2(P)                                     Eth2/14/3(P)  Eth2/14/4(P)  7     Po7(SD)     Eth      LACP      Eth1/22(P)   Eth2/22(P)   Eth3/22(P)                                     Eth107/1/22(D)   8     Po8(SU)     Eth      LACP      Eth1/23(P)   Eth2/23(P)   Eth3/23(P)d_t = {}pattern_1= 'Po\d+'pattern_2='Eth\d+\/\d+(?:\/\d+)?\((?:P|D)\)'result_1 = re.findall(pattern_1,show_pcs)result_2 = re.findall(pattern_2,show_pcs)for p1 in result_1:    for p2 in result_2:        d_t[result_1] = result_2print(d_t){ 'Po1' : ['Eth1/24(P)', 'Eth2/24(P)', 'Eth3/24/10(P)','Eth4/24(P)'], 'Po2': ....}
查看完整描述

2 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗 獲得超8個贊

show_pcs = '''



    1     Po1(SU)     Eth      LACP      Eth1/24(P)   Eth2/24(P)   Eth3/24/10(P)

                                         Eth4/24(P)   

    2     Po2(SU)     Eth      LACP      Eth1/1/1(P)  Eth1/1/2(P)  Eth1/1/3(P)

                                         Eth1/1/4(P)  Eth2/1/1(P)  Eth2/1/2(P)

                                         Eth2/1/3(P)  Eth2/1/4(P)  

    3     Po3(SD)     Eth      NONE      --

    4     Po4(SD)     Eth      NONE      --

    5     Po5(SD)     Eth      LACP      Eth1/3/1(P)  Eth1/3/2(P)  Eth1/3/3(P)

                                         Eth101/3/4(D)  Eth2/3/1(P)  Eth2/3/2(P)

                                         Eth2/3/3(P)  Eth2/3/4(D)  

    6     Po6(SU)     Eth      LACP      Eth1/14/1(P)  Eth1/14/2(P)  Eth1/14/3(P)

                                         Eth1/14/4(P)  Eth102/14/1(P)  Eth2/14/2(P)

                                         Eth2/14/3(P)  Eth2/14/4(P)  

    7     Po7(SD)     Eth      LACP      Eth1/22(P)   Eth2/22(P)   Eth3/22(P)

                                         Eth107/1/22(D)   

    8     Po8(SU)     Eth      LACP      Eth1/23(P)   Eth2/23(P)   Eth3/23(P)

    '''


l = [i.strip() for i in show_pcs.split('\n') if len(i.strip())>0]


l = [j for i in l for j in i.split() if len(j)>0] 


lst1 = []

lst = []

for i in l:

    if i.isdigit():

        if lst !=[]:

            lst1.append(lst)

        else:

            lst=[i]

    else:

        lst.append(i)



dic = {i[1]:i[2:] for i in lst1}


print(dic)

輸出


{'Po1(SU)': ['Eth', 'LACP', 'Eth1/24(P)', 'Eth2/24(P)', 'Eth3/24/10(P)', 'Eth4/24(P)', 'Po2(SU)', 'Eth', 'LACP', 'Eth1/1/1(P)', 'Eth1/1/2(P)', 'Eth1/1/3(P)', 'Eth1/1/4(P)', 'Eth2/1/1(P)', 'Eth2/1/2(P)', 'Eth2/1/3(P)', 'Eth2/1/4(P)', 'Po3(SD)', 'Eth', 'NONE', '--', 'Po4(SD)', 'Eth', 'NONE', '--', 'Po5(SD)', 'Eth', 'LACP', 'Eth1/3/1(P)', 'Eth1/3/2(P)', 'Eth1/3/3(P)', 'Eth101/3/4(D)', 'Eth2/3/1(P)', 'Eth2/3/2(P)', 'Eth2/3/3(P)', 'Eth2/3/4(D)', 'Po6(SU)', 'Eth', 'LACP', 'Eth1/14/1(P)', 'Eth1/14/2(P)', 'Eth1/14/3(P)', 'Eth1/14/4(P)', 'Eth102/14/1(P)', 'Eth2/14/2(P)', 'Eth2/14/3(P)', 'Eth2/14/4(P)', 'Po7(SD)', 'Eth', 'LACP', 'Eth1/22(P)', 'Eth2/22(P)', 'Eth3/22(P)', 'Eth107/1/22(D)', 'Po8(SU)', 'Eth', 'LACP', 'Eth1/23(P)', 'Eth2/23(P)', 'Eth3/23(P)']}



查看完整回答
反對 回復(fù) 2022-06-28
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗 獲得超2個贊

好吧,一種直接的方法是查看日志文件的結(jié)構(gòu)。如果Po鍵是第二個字符串,可以執(zhí)行以下操作:


log_line = '1     Po1(SU)     Eth      LACP      Eth1/24(P)   Eth2/24(P)   Eth3/24/10(P)'


log_line_list = log_line.split()   # will look like: ['1', 'Po1(SU)', 'Eth', ...]

k = log_line_list[1]               # will hold 'Po1(SU)'

log_line_list.remove(k)            # remove the key from the list


d = {k: log_line_list}


print(d)


>> {'Po1(SU)': ['1', 'Eth', 'LACP', 'Eth1/24(P)', 'Eth2/24(P)', 'Eth3/24/10(P)']}

你可以用一個方法來包裝它:


def dict_from_log(log_line):

    l = log_line.split()

    k = l[1]

    l.remove(k)

    return {k: l}

并遍歷您的日志行:map(dict_from_log, log_lines)


查看完整回答
反對 回復(fù) 2022-06-28
  • 2 回答
  • 0 關(guān)注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號