2016-04-08 60 views
-1

我有我定義的對象列表。列表中的Python json

此時我正在迭代此列表中的每個元素並將其轉儲到文件中。但是,當我要重新創建的對象我碰到的問題:

f = open(path, 'w') 
for element in ListOfElements: 
    json.dump(element.__dict__, f) 
f.close() 

當試圖重新對象我做到以下幾點:

a = json.JSONDecoder(object_hook = Element.from_json).decode(f.read()) 

但是,這是非常糟糕的,因爲我必須引進某種文件中對象之間的分隔符。那麼它就不再是一個「真正的」json了。 有沒有一種方法,使某種

json.dump(ListOfElements, f) #this exact code gives me "... is not JSON serializable" 

那麼這將創建一個文件,該文件能夠重新創建整個列表的?

回答

1

用於存儲對象使用python內置pickle或cPickle模塊。這些是專門爲存儲對象而創建的。

檢查從

import pickle 

a = {'hello': 'world'} 

with open('filename.pickle', 'wb') as handle: 
    pickle.dump(a, handle) 

with open('filename.pickle', 'rb') as handle: 
    b = pickle.load(handle) 

print a == b 

這個例子從How can I use pickle to save a dict?