我试图在 python 中将 thrift 对象转换为 json。如果我尝试使用json.dumps(thriftObj),它会失败并显示以下内容:TypeError: MyThriftObj(...) is not JSON serializable我尝试使用默认功能修复它:json.dumps(thriftObj, default=lambda x: x.__dict__)这在某些情况下有效,但在其他情况下我收到错误: AttributeError: 'DictProxy' object has no attribute '__dict__'如何将有效的节俭对象转换为 json?
2 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
Thrift 带有一个可以使用的序列化库。我为此找到的大多数文档都是用 Java 或其他语言编写的,但该库确实存在于 python 中。请参阅下面的一些代码,您可以使用:
from thrift.TSerialization import serialize
from thrift.protocol.TJSONProtocol import TSimpleJSONProtocolFactory
def thrift_to_json(thrift_object):
return serialize(thrift_object, protocol_factory=TSimpleJSONProtocolFactory())
慕勒3428872
TA贡献1848条经验 获得超6个赞
你可以使用包thriftpy2。希望下面的片段可以帮助:
import thriftpy2.protocol.json as proto
json_data = proto.struct_to_json(thrift_data)
您可以在其中替换json_data和thrift_data与您自己的变量。
添加回答
举报
0/150
提交
取消