私はPythonでEmail()クラスを使って作業していますが、SerializeEmail()クラスに拡張したいと思います。 .read_email()。 、私はJSONエンコード/デコード処理をナビゲートしている、と私は成功した私のSerializeEmail()オブジェクトを書き、それを読むことができますPython "json"モジュールを使用してクラスをシリアライズ可能にする
# define email
my_email = SerializeEmail()
my_email.recipients = '[email protected]'
my_email.subject = 'RE: Master sword'
my_email.body = "Master using it and you can have this."
# write email to file system for hand inspection
my_email.write_email('my_email.txt')
...
# Another script reads in email
my_verified_email = SerializeEmail()
my_verified_email.read_email('my_email.txt')
my_verified_email.send()
しかし、私は満足を見つけることができません:私は行動のこの種をしたいと思います私のオブジェクトをSerializeEmail.read_email()呼び出しで再作成する方法です。ここでの問題
class SerializeEmail(Email):
def write_email(self,file_name):
with open(file_name,"w") as f:
json.dump(self,f,cls=SerializeEmailJSONEncoder,sort_keys=True,indent=4)
def read_email(self,file_name):
with open(file_name,"r") as f:
json.load(f,cls=SerializeEmailJSONDecoder)
は私のread_emailでjson.load()呼び出しは()メソッドは、私のSerializeEmailオブジェクトのインスタンスを返すということですが、私が使用している現在のインスタンスにそのオブジェクトを割り当てることはありません。あれを呼べ。だから、今、私は、このような何かをする必要があると思います
another_email = my_verified_email.read_email('my_email.txt')
()の呼び出しがmy_veridied_email.read_emailするために、ファイル上のデータとmy_verified_emailの現在のインスタンスを移入するために私がしたいことはある
。私は試しましたself = json.load(f,cls=SerializeEmailJSONDecoder)
しかし、それは動作しません。返されたオブジェクトの個々の要素を自分の「自己」オブジェクトに割り当てることはできますが、それは臨時のものではないように思えますし、もし存在すればこれを行うための「正しい方法」を探しています。助言がありますか?私の全体的なアプローチに欠陥があると思って、このタスクを達成する別の方法をお勧めするなら、私のためにそれをスケッチしてください。