当我腌制dict时,Python pickle返回一个字符串?

时间:2011-02-28 14:58:59

标签: python dictionary pickle

我目前正在学习使用Python进行酸洗而且我对错误感到困惑我正在抱怨我正在进行的未修改的变量没有我想要使用的特定属性。

我正在挑选脚本数据的字典,然后使用以下代码尝试 unpickle.load

def loadData():
    global script_data_filepath
    with open(script_data_filepath) as script_data_file:
        data_to_load = pickle.load(script_data_file)
        for data_item in data_to_load.items():
            print(data_item[0])
            print(data_item[1])

问题是Python说 items()不是data_to_load的属性,因为data_to_load的类型为' str '。在我给出的代码中,这是第一次声明data_to_load,我按下它将动态地采用分配给它的任何类型(这应该是字典,因为我知道将从该文件加载)。 / p>

1 个答案:

答案 0 :(得分:3)

那应该有用。你发布的代码很好。你怎么甩它?您使用的是pickle.dump,而不是pickle.dumps的字符串?您的问题几乎肯定在转储代码中。

>>> import cPickle
>>> foo = {4:2}
>>> cPickle.dump(foo, open('foo.pickle', 'wb'))
>>> data_to_load = cPickle.load(open('foo.pickle'))
>>> data_to_load.items()
[(4, 2)]