2017-08-02 124 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]。

相关问题