Python - 在二进制文件中一起保存对象?

时间:2011-09-04 20:51:20

标签: python

我有一个包含许多对象的python类 - 有些是数据结构(listsdicts等),有些是其他类的处理程序(还包含其他数据结构) ...)。

而不是使用pickle来保存整个班级&它的内容,我想知道是否有办法serialize 几个所需对象的数据并将它们(只有它们)保存在二进制文件中?

例如,假设我有以下2个python对象:

myList = [1, 2, 3, 4, 5]
myDict = {'a' : 14, 'b' : 5, 'c' : 65}

二进制文件中保存这些python个对象的内容的最佳方法是什么?理想情况下,我想将两个对象保存在同一个二进制文件中,以后可以加载数据。

2 个答案:

答案 0 :(得分:5)

然后为它们创建一个容器类(或者命名为tuple,或者只是一个元组,无论如何)并对它进行pickle(或者修改原始类,以便只腌制你想要的那些部分)。 pickle 序列化,它是标准的Python机制。所以除非你需要,例如不同语言之间的互操作性更强,坚持下去。

答案 1 :(得分:1)

import pickle

imelda = ('More Mayhem', 
        'Imelda May', 
        '2011',
         ((1, 'Pulling the Rug')
         (2, 'Psycho'),
         (3, 'Mayhem'),
         (4, 'Kentish Town Waltz')))

with open("imelda.pickle", "wb") as pickle_file:
    pickle.dumps(imelda, pickle_file)