Shelve KeyError при помещении массива полки в переменную
Traceback (most recent call last):
File "/usr/lib/python3.5/shelve.py", line 111, in __getitem__
value = self.cache[key]
KeyError: 'lb'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/discord/client.py", line 307, in _run_event
yield from getattr(self, event)(*args, **kwargs)
File "imgbot.py", line 85, in on_message
lead = getlb()
File "imgbot.py", line 75, in getlb
sortedlb = sortlb()
File "imgbot.py", line 50, in sortlb
utemp = ulbs['lb']
File "/usr/lib/python3.5/shelve.py", line 113, in __getitem__
f = BytesIO(self.dict[key.encode(self.keyencoding)])
KeyError: b'lb'
Соответствующая функция:
def sortlb():
ulbs = shelve.open('leaderboard')
utemp = ulbs['lb']
lbs.close()
ret = ['Leaderboard:']
pos = 0;
while len(temp) > 0:
largest = -1;
lindex = 0;
luser = ''
rentry = ''
pos = pos+1
for entry in utemp:
id = entry[:x]
name = entry[x+1:p]
points = entry[p+1:]
if points > largest:
largest = points
lindex = utemp.index(entry)
luser = name
rentry = pos+'. '+luser
ret.append(str(lindex)+'. '+rentry)
del utemp[utemp.index(lindex)]
return ret
По сути, я пытаюсь отсортировать список пользователей / точек по минимальному количеству точек в формате "имя пользователя / идентификатор пользователя, точки", потому что я не знал лучшего способа сделать это, смеется.