ibeautiful
2022-06-02 10:11:27
我試圖在 python 中將 thrift 對象轉(zhuǎn)換為 json。如果我嘗試使用json.dumps(thriftObj),它會失敗并顯示以下內(nèi)容:TypeError: MyThriftObj(...) is not JSON serializable我嘗試使用默認功能修復它:json.dumps(thriftObj, default=lambda x: x.__dict__)這在某些情況下有效,但在其他情況下我收到錯誤: AttributeError: 'DictProxy' object has no attribute '__dict__'如何將有效的節(jié)儉對象轉(zhuǎn)換為 json?
2 回答

長風秋雁
TA貢獻1757條經(jīng)驗 獲得超7個贊
Thrift 帶有一個可以使用的序列化庫。我為此找到的大多數(shù)文檔都是用 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條經(jīng)驗 獲得超6個贊
你可以使用包thriftpy2。希望下面的片段可以幫助:
import thriftpy2.protocol.json as proto
json_data = proto.struct_to_json(thrift_data)
您可以在其中替換json_data和thrift_data與您自己的變量。
添加回答
舉報
0/150
提交
取消