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

如何替换 Zeep 的默认布尔序列化器?

如何解决如何替换 Zeep 的默认布尔序列化器?

当我序列化一个布尔值时,Zeep 返回 "true"/"false"(按照 xsd.types.Boolean 类)。

我想将其更改为返回 "1"/"0",因为我使用的 API 只接受这些值。

如何替换认的布尔序列化器?

解决方法

我最终对 xmlvalue 函数进行了猴子修补。

class MyBoolean(Boolean):
    @check_no_collection
    def xmlvalue(self,value):
        return "1" if value and value not in ("false","0") else "0"

Boolean.xmlvalue = MyBoolean.xmlvalue

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