我需要從100行日誌數據中提取特定的字符串。我 試圖拆分,然後試圖獲得所需的字符串,但不能 成功。任何建議/幫助表示讚賞。謝謝!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': '-',
回答
貌似字符串在字典格式(糾正我,如果我錯了),所以你可以嘗試將其轉換爲一個。那麼你將不需要正則表達式。
import ast
your_dict = ast.literal_eval(your_string)
然後你想會是什麼:
your_dict['status']['initiator0_iqn']
謝謝,但有沒有辦法通過不導入任何庫? – Rohit
'ast'應該在您的系統中使用python。但是如果你不想使用它,你可以使用'json.loads'將字符串轉換爲json。然而,你將不得不「導入json」這是另一個庫(儘管它也包括在內)。 – user3543300
最終你會想要將字符串轉換爲字典,因爲這是做到這一點的最快和最合乎邏輯的方式。如果你在任何時候都有對象作爲字典,那麼你不必導入任何庫。 – user3543300
- 1. Python - 從字符串中提取文本
- 2. Python:從字符串中提取文本
- 3. 提取字符串中的文本 - python
- 4. 如何從文本文件行中提取唯一字符串?
- 5. 從100個.htm文件中提取「http」字符串
- 6. 從python中的字符串中提取最後一個字符?
- 7. Python字符串提取文本文件
- 8. 從一個文本字符串中提取數字 - Excel
- 9. 從python中的文本文件中提取一個字符串2.7.5
- 10. 如何從文本文件中一次提取100個數字?
- 11. python - 如何從文本文件中的每一行提取字符串?
- 12. 從字符串中提取一個字
- 13. 從字符串中提取文本
- 14. 從Java中提取文本字符串
- 15. 從字符串中提取文本
- 16. 從文本中提取字符串
- 17. 從字符串中提取文本Java
- 18. 從文本字符串中提取第一個句子
- 19. 從文本字符串中提取第一個匹配項?
- 20. Python - 從多個文件中提取多個字符串中的文本
- 21. 提取字符串文本到另一個字符串
- 22. 提取字符串/從一個大的文本值/ dat文件
- 23. 從python中特定行的文件中提取字符串
- 24. 從一個字符串中提取兩個子字符串
- 25. 從一個字符串中提取兩個子字符串
- 26. Python:使用關鍵短語從字符串中提取文本
- 27. 如何從文本文件中提取多行字符串?
- 28. 從Ruby中的一個長字符串中提取字符串
- 29. 提取數字從一個字符串
- 30. 從提取文本或字符串
如果字典被稱爲'lookup'則:'查找[ '狀態'] [ 'initiator0_iqn']' –
此外,沒有使用的語言物?該解決方案是否必須是Python,還是Python的輸出,並且任何語言都可以獲得輸出結果? – Addison
@Addison我只需要獲取該字符串,我想將它複製到其他變量。它需要在Python中。 – Rohit