我想通過for循環迭代列表並通過正則表達式捕獲組建立第二個列表。我查看了與re模塊相關的文檔,但由於某種原因,正則表達式總是返回一個結果。正則表達式進行了測試,所以我確信這是有效的。python通過正則表達式遍歷列表
有什麼想法?
編輯
#! /usr/bin/python
import re
import subprocess
try:
cmd = "ps aux|grep -i \'zabbi[x]\'"
cmd_stdout = subprocess.check_output(cmd, shell=True).split('\n')
cmd_stdout_lst = []
ps_re = re.compile(r'^(\S+)\s+(\d+)\s+\d+\.\d+\s+\d+\.\d+\s+(\d+)\s+(\d+).+')
for line in cmd_stdout:
match = ps_re.findall(line)
if match:
print match
cmd_stdout_lst.append('\n\t\t{"{#USER}":'+'"' + match[0][0] + ',"{#PID}":'+'"'+match[0][1]+'"}'+',"{#PID}":'+'"'+match [0][2]+'"}'+',"{#PID}":'+'"'+match[0][3]+'"}')
print '{\n\t"data":['+','.join(cmd_stdout_lst)+']\n}'
except:
raise
$ python proc_discovery.py
[('zabbix', '14479', '96784', '680')]
您的預期產出是多少? – TemporalWolf
預期的輸出應該是一個新的json列表,如下所示: '{「data」:[{「{#USER}」:「zabbix」},{「{#PID}」:「14479」}, {「{#VSZ}」:「96784」},{「{#RSS}」:「680」}]}' – penguin02007
將您的'除外:退出(1)'切換到'除外:raise'完全),所以你沒有隱藏你得到的例外。那是你的問題。您可能正在獲取列表索引超出範圍例外。 – TemporalWolf