无法释放旧数据

时间:2019-11-24 14:16:43

标签: python pickle

我有一个很久没有使用的程序了,它的信息以pickle格式存储。我想获取此信息。我现在尝试运行此程序,但出现此错误:

AttributeError: 'class_info_image_one' object has no attribute '__dict__'

class_info_image_one是一个命名元组。

找到这里引用的内容:Pickle cross platform __dict__ attribute error

那么,此程序应在哪个python版本上运行?我尝试了python 3.7和python 3.1,两者都出现相同的错误。

尝试使用python 2.7,出现此错误:

ValueError: unsupported pickle protocol: 3

这是我正在使用的代码,我删除了所有不必要的内容:

import os
import pickle

from collections import deque, namedtuple


class_info_image_one = namedtuple('class_info_image_one', 'md5 extension id tags rating source has_notes has_sample parent_id has_children created_at status author creator_id width height file_size has_comments score')


if os.path.isfile('info_image.pickle'):
    with open('info_image.pickle', 'rb') as lolfile:
        info_image = pickle.load( lolfile )

1 个答案:

答案 0 :(得分:0)

根据您链接的Python错误的讨论,在pickle中损坏的__dict__存在于Python 3.2和3.3中,并已在3.3.2中修复。显然,它并不能阻止在相同版本中进行解腌。