Python 3.x Python代码可以工作,但也会说;“索引超出范围”;

Python 3.x Python代码可以工作,但也会说;“索引超出范围”;,python-3.x,Python 3.x,我需要从一个文件中取出每一行,并把它们编成字典 这是我的密码: def recnik(line): knjiga1 = {} info = line.split("|") knjiga1["autori"] = info[0] knjiga1["naslov"] = info[1] knjiga1["godina"] = info[2] knjiga1["isbn"] = info[3] knjiga1["zanr"] = info[4]

我需要从一个文件中取出每一行,并把它们编成字典 这是我的密码:

def recnik(line):
    knjiga1 = {}
    info = line.split("|")
    knjiga1["autori"] = info[0]
    knjiga1["naslov"] = info[1]
    knjiga1["godina"] = info[2]
    knjiga1["isbn"] = info[3]
    knjiga1["zanr"] = info[4]
    knjiga1["cena"] = info[5]
    knjiga1["kolicina"] = info[6]
    knjiga1["stanje"] = info[7]

    print(knjiga1)

a = open("../data/sveKnjige.txt", "r")
for line in a:
    recnik(line)
a.close()
我的文件如下所示:

Viliam Sekspir|Hamlet|1600|3214569879878|drama|6500|60|true|
Dragoslav Mihajlovic|Kad su cvetale tikve|1968|3332221115554|drama|3000|20|true|
Fjodor Dostojevski|Zlocin i kazna|1866|9788897572657|roman|4500|50|true|
Dostojevski|Ana|1995|3214569874563|triler|321|22|true|

这段代码可以工作,但也会出现“列表索引超出范围”错误,我找不到问题。请帮助。

此代码适用于我的机器。你确定你的输入文件就是你在这里发布的吗?

这段代码在我的机器上运行。你确定你的输入文件实际上就是你在这里发布的吗?

对我也有用。 我试图引发错误,但我不得不在输入文件字符中添加最后一行,其中只有一个“|”以使其失败

可能您的某行(在输入文件中)有不正确的字符。试着在每个循环中打印信息的内容。

对我也有用。 我试图引发错误,但我不得不在输入文件字符中添加最后一行,其中只有一个“|”以使其失败


可能您的某行(在输入文件中)有不正确的字符。尝试打印每个循环中的信息内容。

是的,它会打印所有字典,但也会打印以下内容:回溯(最近一次调用):文件“C:\Users\lenovo\Desktop\OP_SII_270486\src\asd.py”,第17行,在recnik(行)文件“C:\Users\lenovo\Desktop\OP_SII_270486\src\asd.py”,第5行,在recnik knjiga1[“naslov”]=info[1]索引器:列表索引超出范围是的,它会打印所有词典,但也会打印以下内容:回溯(最近一次调用):文件“C:\Users\lenovo\Desktop\OPèSII_270486\src\asd.py”,第17行,在recnik(行)文件“C:\Users\lenovo\Desktop\OPèSi_270486\src\asd.py”第5行,在recnik knjiga1[“naslov”]=info[1]索引器:列表索引超出范围