2016-04-08 15 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.dump(ListOfElements, f) #this exact code gives me "... is not JSON serializable" 

のいくつかの種類を作成する方法はありますか?

答えて

1

オブジェクトを格納するためには、ピックルまたはcPickleモジュールでpythonを使用してください。これらは、オブジェクトを格納するために特別に作成されます。

チェックHow can I use pickle to save a dict?

から

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 

からこの例