Python 尝试取消勾选列表时出现KeyError
我有一个文件,其中包含一个经过修改的浮动列表。我可以在处理列表的同一台机器上加载列表,但当我在另一台机器上尝试时,出现以下错误:Python 尝试取消勾选列表时出现KeyError,python,pickle,Python,Pickle,我有一个文件,其中包含一个经过修改的浮动列表。我可以在处理列表的同一台机器上加载列表,但当我在另一台机器上尝试时,出现以下错误: Traceback (most recent call last): File "<console>", line 2, in <module> File "/usr/lib/python2.7/pickle.py", line 1378, in load return Unpickler(file).load() File "/usr/l
Traceback (most recent call last):
File "<console>", line 2, in <module>
File "/usr/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
KeyError: '\x00'
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
文件“/usr/lib/python2.7/pickle.py”,第1378行,已加载
返回Unpickler(file.load())
文件“/usr/lib/python2.7/pickle.py”,第858行,已加载
调度[键](自身)
KeyError:“\x00”
这两个python版本分别是2.7.0(在原始计算机上)和2.7.2(在尝试取消勾选文件的版本上)。我不认为仅仅因为这一点就应该有任何不兼容
我不认为仅仅因为这一点就应该有任何不兼容
除非2.7.0中有一些bug在最近的版本中修复了。我个人认为,最有可能的罪魁祸首是查看变更记录:
问题#7117:在几乎所有平台上:浮点到字符串和字符串到浮点
Python中的转换现在已正确舍入。放置这些转换
发生的情况包括:浮点数和复数的str;浮华与复杂
施工人员;旧式和新式数字格式;序列化和
使用marshal、pickle和json反序列化浮点数和复数;
Python代码中浮点和虚字的解析;十进制浮点数
转换
我面对同样的问题,尝试了很多事情,但都没有成功。最后,我使用cPickle解决了这个问题。只要把“pickle”换成“cPickle”,一切都很好。它有完全相同的方法和参数
import cPickle
cPickle.dump()
cPickle.load()
使用Python2.7.12时,无法使用列表取消勾选json文件,即。 [{“k”:0},{“k”:1}] cPickle没有帮助,json帮了忙:
import json
json.load(open(file))
你能多谈谈这两台机器吗?i、 它们是否都是相同的处理器架构?“浮动列表列表”是本地Python列表,还是列表的子类?显然,就是这样。我花了一段时间才升级了装有Python 2.7.0的机器。