不能pickle的OrderedDict.keys()对象(Py2-bt-py3)

一则来自django-redis的报错:TypeError: can't pickle odict_keys objects

迁移到Python3时遇到的一个问题,Py3中的OrderedDict.keys()返回的是一个对象:odict_keys。可以迭代的对象,但是不支持index操作,和切片操作。并且不能pickle。所以我就遇到这个坑了。不过它多了一个更新keys的功能,可以看最后的参考链接。

代码如下:

不能pickle的OrderedDict.keys()对象(Py2-bt-py3)_第1张图片

python2.7和Python3.6下分别运行:

不能pickle的OrderedDict.keys()对象(Py2-bt-py3)_第2张图片

参考:

  • https://docs.python.org/3/library/stdtypes.html#dict-views

- from the5fire.com 

文章转自:https://www.the5fire.com/

不能pickle的OrderedDict.keys()对象(Py2-bt-py3)_第3张图片

你可能感兴趣的:(Python)