我是python的新手,我知道有很多答案,但是大多数使用{strong> Python3 中不存在的__dict__
。
假设我有对象:
class A(object):
def __init__(self, f1, f2):
self.f1 = f1
self.f2 = f2
现在f2是另一个对象:
class F2(object):
def __init__(self, f21, f22):
self.f21 = f21
self.f22 = f22
因此A
对象是复杂对象。最简单的方法是:
A
序列化为dict
,然后序列化为json
。 json
-> A
全部使用Python 3.5+和可能,而没有额外的导入,因为我们内部的公司联系有限。
答案 0 :(得分:0)
import pickle
import base64
import json
class A(object):
def __init__(self, f1, f2):
self.f1 = f1
self.f2 = f2
a = pickle.dumps(A, 3)
j = base64.b64encode(a).decode('utf-8')
x = json.dumps([j])
print(a)
print(j)
print(x)
# output:
# b'\x80\x03c__main__\nA\nq\x00.'
# gANjX19tYWluX18KQQpxAC4=
# ["gANjX19tYWluX18KQQpxAC4="]
反序列化将是相反的; json.loads
,string.encode
base64.b64decode
,pickle.loads
。