保存/加载期间发生Python键错误

2024-10-02 20:30:14 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在开发一个程序,它以前可以很好地保存/加载,我有所有正确的导入等等,但是最近,当我试图加载时,我收到了这个错误消息(在保存期间也有类似的错误消息):

Traceback (most recent call last):


 File "C:\Users\Adam\AppData\Local\Programs\Python\Python36\lib\shelve.py", line 111, in __getitem__
    value = self.cache[key]
KeyError: 'flipvariables'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\BascGames\ManorI\MANOR.py", line 241, in <module>
    flipvariables = sf['flipvariables']
  File "C:\Users\Adam\AppData\Local\Programs\Python\Python36\lib\shelve.py", line 113, in __getitem__
    f = BytesIO(self.dict[key.encode(self.keyencoding)])
  File "C:\Users\Adam\AppData\Local\Programs\Python\Python36\lib\dbm\dumb.py", line 147, in __getitem__
    pos, siz = self._index[key]     # may raise KeyError
KeyError: b'flipvariables'

引发错误的代码(在两个地方,在两个不同的时间,但它们有完全相同的代码——这是重新加载代码,使用SHELVE):

^{pr2}$

有人知道这可能是什么以及如何修复它吗?提前谢谢。我理解基本原理,理解线条的含义,但是错误的基本概念对我来说没有意义。谢谢!在


Tags: inpyselfliblocal错误lineusers
1条回答
网友
1楼 · 发布于 2024-10-02 20:30:14

键错误是指字典的键不存在。例如

person = {name: 'joe', age: 41}

如果我使用person['last_name']调用键last_name,Python会抛出一个KeyError,因为给定字典的键不存在。

在你的错误中: KeyError: b'flipvariables'表示给定字典的键{}不存在。

根据回溯中的flipvariables = sf['flipvariables']行,查看代码中的sf字典,看看flipvariables键是否在那里,如果需要,可以添加它。

相关问题 更多 >