【发布时间】:2018-08-23 04:40:42
【问题描述】:
编码基本上是字典的字符串表示,包含对象的字段。但是,字典不尊重顺序,我可能会在不同的运行中得到不同的编码字符串。我如何防止这种情况发生?或者我应该使用另一个可以确保确定性编码的库?
通过确定性编码,我的意思是,如果我创建 100000 个几乎相同的对象,即相同的类和相同的构造函数参数,当我在每个对象上调用 encode() 时,我每次都会得到完全相同的字符串。
例如,如果我有
class MyClass(object):
def __init__(self, a, b):
self.a = a
self.b = b
c1 = MyClass(1, 2)
c2 = MyClass(1, 2)
我想确保字符串 encode(c1) 和 encode(c2) 完全一样,字符对字符,即
assert jsonpickle.encode(c1)==jsonpickle.encode(c2)
【问题讨论】:
-
看不懂,基本一样。仅向我们展示您的 2 个对象。
-
请看我的附加编辑。
标签: python serialization deserialization pickle jsonpickle