2017-08-02 39 views
-3

這是一個讀取json數據的python文件,但它顯示了一些錯誤。Python錯誤:IndexError:列表索引超出範圍。

這是代碼:

import json 
import sys 
import traceback 


with open(str(sys.argv[1]), 'r') as data_file: 
    data = json.load(data_file) 

org_name = str(sys.argv[1]).split('.json', 1)[0] 

if data[0]['status'] == 'ERROR' : 
    print "sslscan finished with errors" 
sys.exit(-1) 
+0

如果沒有看到您的數據文件,並且沒有錯誤追溯的確切副本,則很難確定可能出現的問題。 – holdenweb

+0

讓我們假設它有一個json文件,如果它讀取文件,那麼它應該返回錯誤還是什麼。 –

+0

這裏的主要問題是,如果它沒有數據,它應該返回sslscan完成錯誤。用sys.exit(-1) –

回答

1

錯誤的意思是,你的列表索引超出範圍的 - 你想指的是不存在的一些指標。

嘗試調試代碼:將每個操作的輸出打印到控制檯。我認爲在下面的行發生時錯誤:

with open(str(sys.argv[1]), 'r') as data_file: 

可能你不傳遞任何cmd參數,因此具有sys.argv中長度爲1 - > sys.argv中[1]是出界。

這對你有意義嗎?是的,請編輯你的問題,這太不明瞭。我們需要更多關於錯誤追溯的信息。

編輯: 但願這是你剛纔應該使用sys.argv中[0],而不是sys.argv中[1] - 列表是通過從零開始的整數索引。所以如果你想傳遞腳本的名字,使用索引[0]。

相關問題