如何在 python 中将节俭对象转换为 Json?

我试图在 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?


ibeautiful
浏览 81回答 2
2回答

长风秋雁

Thrift 带有一个可以使用的序列化库。我为此找到的大多数文档都是用 Java 或其他语言编写的,但该库确实存在于 python 中。请参阅下面的一些代码,您可以使用:from thrift.TSerialization import serializefrom thrift.protocol.TJSONProtocol import TSimpleJSONProtocolFactorydef thrift_to_json(thrift_object):  return serialize(thrift_object, protocol_factory=TSimpleJSONProtocolFactory())

慕勒3428872

你可以使用包thriftpy2。希望下面的片段可以帮助:import thriftpy2.protocol.json as protojson_data = proto.struct_to_json(thrift_data)您可以在其中替换json_data和thrift_data与您自己的变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python