2016-09-28 2 views
-1
  1. 100 줄의 로그 데이터에서 특정 문자열을 추출해야합니다. I split을 시도한 다음 필요한 문자열을 가져 오려고했지만 을 성공시킬 수 없습니다. 모든 제안/도움이 감사드립니다. 감사! 아래 로그에서 Python : 100 줄의 텍스트에서 하나의 문자열을 추출하십시오.

    , 내가 이 zqn.2005- 04.com.sanblaze이라고 강조 표시된 부분을 추출하고 싶습니다 : virtualun.init74-2.initiator-00000000-0000을 (그 라인 57 문자열이 사전 형식 (내가 틀렸다면 정정 해줘)에서처럼 하나로 변환을 시도 할 수 있도록)

    1   Out[19]: 
    2   {'portstatus': {'errors': {'busy_errors': '0', 
    3   'checkcondition_errors': '0', 
    4   'compare_errors': '0', 
    5   'ioc_errors': '0', 
    6   'notready_errors': '0', 
    7   'read_errors': '0', 
    8   'read_retries': '0', 
    9   'scsi_errors': '0', 
    10   'test_errors': '0', 
    11   'timeout_errors': '0', 
    12   'write_errors': '0', 
    13   'write_retries': '0'}, 
    14   'net_counters': {'RxBytes': '148476788547060', 
    15   'RxCompressed': '0', 
    16   'RxDrop': '96188', 
    17   'RxErrs': '0', 
    18   'RxFIFO': '0', 
    19   'RxFrame': '0', 
    20   'RxMulticast': '259513', 
    21   'RxPFCPause': '0', 
    22   'RxPackets': '77165581759', 
    23   'RxStandardPause': '0', 
    24   'TxBytes': '20440169002909', 
    25   'TxCompressed': '0', 
    26   'TxDrop': '0', 
    27   'TxErrs': '0', 
    28   'TxFIFO': '0', 
    29   'TxFrame': '0', 
    30   'TxMulticast': '0', 
    31   'TxPFCPause': '0', 
    32   'TxPackets': '55075507366', 
    33   'TxStandardPause': '5349727', 
    34   'net_avgriops': '0', 
    35   'net_avgrrate': '0.00', 
    36   'net_avgtiops': '0', 
    37   'net_avgtrate': '0.00', 
    38   'net_riops': '0', 
    39   'net_rrate': '0.00', 
    40   'net_tiops': '0', 
    41   'net_trate': '0.00'}, 
    42   'perfdata': {'avg_oiocnt': '0', 
    43   'avgiops': '0', 
    44   'avgriops': '0', 
    45   'avgrrate': '0.00', 
    46   'avgtrate': '0.00', 
    47   'avgwiops': '0', 
    48   'avgwrate': '0.00', 
    49   'iops': '0', 
    50   'max_oiocnt': '509', 
    51   'oiocnt': '0', 
    52   'riops': '0', 
    53   'rrate': '0.00', 
    54   'trate': '0.00', 
    55   'wiops': '0', 
    56   'wrate': '0.00'}, 
    57   'status': {'initiator0_iqn': 'zqn.2005- 04.com.sanblaze:virtualun.init74-2.initiator-00000000-0000', 
    58   'initiator10_iqn': 'zqn.2005-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0010', 
    59   'initiator11_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0011', 
    60   'initiator12_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0012', 
    61   'initiator13_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0013', 
    62   'initiator14_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0014', 
    63   'initiator15_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0015', 
    64   'initiator16_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0016', 
    65   'initiator17_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0017', 
    66   'initiator18_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0018', 
    67   'initiator19_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0019', 
    68   'initiator1_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0001', 
    69   'initiator20_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0020', 
    70   'initiator21_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0021', 
    71   'initiator22_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0022', 
    72   'initiator23_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0023', 
    73   'initiator24_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0024', 
    74   'initiator25_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0025', 
    75   'initiator26_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0026', 
    76   'initiator27_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0027', 
    77   'initiator28_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0028', 
    78   'initiator29_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0029', 
    79   'initiator2_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0002', 
    80   'initiator30_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0030', 
    81   'initiator31_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0031', 
    82   'initiator32_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0032', 
    83   'initiator33_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0033', 
    84   'initiator34_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0034', 
    85   'initiator35_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0035', 
    86   'initiator36_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0036', 
    87   'initiator37_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0037', 
    88   'initiator38_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0038', 
    89   'initiator39_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0039', 
    90   'initiator3_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0003', 
    91   'initiator40_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0040', 
    92   'initiator41_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0041', 
    93   'initiator42_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0042', 
    94   'initiator43_iqn': 'iqn.2003-04.com.sanblaze:virtualun.init74-2.initiator-00000000-0043', 
    95   'mode': 'Init', 
    96   'numinitiators': '50', 
    97   'numtargets': '0', 
    98   'port': '0', 
    99   'portwwnn': '90:e2:ba:82:92:1c', 
    100   'portwwpn': '90:e2:ba:82:92:1c', 
    101   'speed': '10G', 
    102   'state': 'Online', 
    103   'topo': 'iSCSI'}, 
    104   'sympn': '-', 
    
+0

:'조회 [ '상태'] [ 'initiator0_iqn는'] ' –

+0

또한, 언어가 사용 않는 그런 당신이 될 것입니다 원하는

import ast your_dict = ast.literal_eval(your_string) 

문제? 솔루션은 파이썬이어야합니까, 아니면 파이썬의 출력입니까? 그리고 어떤 언어가 출력을 얻으려고할까요? – Addison

+0

@Addison 그 문자열을 가져 와서 다른 변수에 복사하고 싶습니다. 그것은 파이썬에 있어야합니다. – Rohit

답변

1

는 같습니다. 그렇다면 정규식이 필요하지 않습니다. 사전은 다음 LOOKUP ''라고하면

your_dict['status']['initiator0_iqn'] 
+0

고맙지 만 libs를 가져 오지 않는 방법이 있습니까? – Rohit

+0

'ast'는 시스템에 파이썬이 있어야합니다. 그러나 당신이 그것을 사용하고 싶지 않다면, 당신은'json.loads'를 사용하여 문자열을 json으로 변환 할 수 있습니다. 그러나 다른 라이브러리 인'import json'을 사용해야합니다 (포함되어 있지만). – user3543300

+0

궁극적으로 문자열을 사전으로 변환하는 것이 가장 빠르고 가장 논리적 인 방법입니다. 임의의 지점에서 사전을 객체로 사용하면 라이브러리를 가져올 필요가 없습니다. – user3543300

관련 문제