开发者

cPickle class with data save to file

开发者 https://www.devze.com 2023-01-02 19:43 出处:网络
I\'ve big class in Python it\'s \"DataBase-like\" class. I want to save it to file - all including data.

I've big class in Python it's "DataBase-like" class. I want to save it to file - all including data.

This is input(example to show the issue, in script database is like 10000 records):

import cPickle
# DataBase-like class
class DataBase:
    class Arrays: pass
    class Zones: pass
    class Nodes: 
        class CR: pass    
    class Links: 
        class CR: pass
    class Turns:
        class CR: pass    
    class OrigConnectors: pass
    class DestConnectors: pass    
    class Paths: pass
    pass
# some basic input into database
DataBase.Arrays.Data=[]
for i in range(1000):
    DataBase.Arrays.Data.append([i+4]) 

print DataBase.Arrays.Data[56]

# and now I want to save it to file

import cPickle    

filename='D:/results/file.lft'
file=open(filename,'w')
cPickle.dump(DataBase, file, protocol=2)`

And that's the file I get:

€c__main__
DataBase
q.`
开发者_StackOverflow中文版

There's no data, just definition. How can I overcome that. Maybe saving my data as a class is not a good idea?


You are pickling "DataBase" which is a class definition. You need to instantiate an object of class DataBase then pickle that.

objDataBase = DataBase()
objDataBase.Arrays.Data = etc....

filename='D:/results/file.lft'
file=open(filename,'w')
cPickle.dump(objDataBase, file, protocol=2)
file.close()
0

精彩评论

暂无评论...
验证码 换一张
取 消