微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有相同标识的 JsonPickle 对象

如何解决具有相同标识的 JsonPickle 对象

我目前想知道以下内容是否属于恶意行为或预期行为。我尝试序列化一个 Python 对象树,其中一些对象是相同的。我想避免来自 jsonpickle (1.4.2) 的 py/id 指针(以及所有其他膨胀),所以我使用 unpickleable=False。

import jsonpickle


class Person:
    def __init__(self):
        self.name = "Jane Doe"


class Car:
    def __init__(self):
        self.owner = None
        self.driver = None
        self.passengers = []


def test_jsonpickle():
    han = Person()
    han.name = "Han"
    car = Car()
    car.driver = han
    car.owner = han

    pa = Person()
    pa.name = "Pete"
    car.passengers.append(pa)
    car.passengers.append(han)

    json_string = jsonpickle.encode(car,unpicklable=False)
    print("Json String: " + json_string)
    # out: Json String: 
    # {"owner": {"name": "Han"},"driver": null,"passengers": [{"name": "Pete"},null]}


if __name__ == '__main__':
    test_jsonpickle()

使用 make_refs=False 也不起作用并持续 __repr__ 返回(此外还有其他膨胀的 py/object 等)。我想获得相同对象的深层副本(或 $ref JSON 指针)。有人知道如何调整它或可以提出另一个库吗?我想在 Web 上下文中使用结果 Json。是的,我尝试过 jsonpickleJS,但是当你错过注册一个类时它很糟糕(指针被解析为错误的对象)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。