我想填充字典newDict
在下面的代碼:有什麼不對填充字典
def sessions():
newDict = {}
output = exe(['loginctl','list-sessions']) # uses subprocess.check_output(). returns shell command's multiline output
i = 0;
for line in output.split('\n'):
words = line.split()
newDict[i] = {'session':words[0], 'uid':words[1], 'user':words[2], 'seat':words[4]}
i += 1
stdout(newDict) # prints using pprint.pprint(newDict)
但它只是不斷給我的錯誤:
newDict[i] = {'session':words[0], 'uid':words[1], 'user':words[2], 'seat':words[4]}
IndexError: list index out of range
如果我在循環做print words
,這裏是我得到的:
['c3', '1002', 'john', 'seat0']
['c4', '1003', 'jeff', 'seat0']
我在做什麼錯?
什麼是exe?你是不是指執行官? –
可能有少於5個單詞的行,所以'words [4]'引發了一個IndexError。你可能在最後有一個空行,試着在output.strip()。line中分出('\ n')'來擺脫它。 –
@AndrésPérez-AlbelaH。編輯的問題。 – aceph