2017-08-02 15 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

ファイルを読み取った後にエラーまたは何を返すべきかを1つのjsonファイルが前提とします。 –

+0

ここでの主な問題は、データがない場合はsslscanがエラーで終了することです。 sys.exit(-1) –

答えて

1

意味は、あなたのリストのインデックスが範囲外であるということです - あなたは存在しないいくつかの指標を参照しようとしています。

コードをデバッグしようとします。各操作の出力をコンソールに出力します。 [1]範囲外にある> sys.argvの -

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

は、おそらくあなたはどんなのcmd引数を渡していないので、sys.argvのは、長さ1を持っている:私は、そのエラーが次の行で発生だと思います。

あなたにとって理にかなっていますか?そして、はい、あなたの質問を編集してください、それはあまりにも不明です。エラーのトレースバックに関する詳細が必要です。

EDIT: それはあなただけの代わりにsys.argvの[0]のsys.argvのを使用する必要があるのか​​もしれ[1] - リストはゼロベースの整数でインデックス化されています。したがって、スクリプトの名前を渡す場合は、index [0]を使用します。

関連する問題