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

По сути, я пытаюсь отсортировать список пользователей / точек по минимальному количеству точек в формате "имя пользователя / идентификатор пользователя, точки", потому что я не знал лучшего способа сделать это, смеется.

0 ответов

Другие вопросы по тегам