Python错误:IndexError:列表索引超出范围。
问题描述:
这是一个读取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)
答
错误的意思是,你的列表索引超出范围的 - 你想指的是不存在的一些指标。
尝试调试代码:将每个操作的输出打印到控制台。我认为在下面的行发生时错误:
with open(str(sys.argv[1]), 'r') as data_file:
可能你不传递任何cmd参数,因此具有sys.argv中长度为1 - > sys.argv中[1]是出界。
这对你有意义吗?是的,请编辑你的问题,这太不明了。我们需要更多关于错误追溯的信息。
编辑: 但愿这是你刚才应该使用sys.argv中[0],而不是sys.argv中[1] - 列表是通过从零开始的整数索引。所以如果你想传递脚本的名字,使用索引[0]。
如果没有看到您的数据文件,并且没有错误追溯的确切副本,则很难确定可能出现的问题。 – holdenweb
让我们假设它有一个json文件,如果它读取文件,那么它应该返回错误还是什么。 –
这里的主要问题是,如果它没有数据,它应该返回sslscan完成错误。用sys.exit(-1) –