Thrift 转 Json

好久没写啥了。来水个短文。

公司主要在用 Thrift。但有时候也需要提供 HTTP 服务。一般做法是起个 Flask,然后转发一下请求。

这都没啥问题。最关键的问题是……我懒。

怎么说呢,一般来说从前面传来的参数比较少,我可以手动填值到 Thrift 的 request 里;但是返回值巨多,这时候再让我手动构造 Json 我就不乐意了。

好在 ThriftPy2 提供有一个函数,可以秒秒钟解决这个问题。下面是做法:

首先导入包

import thriftpy2.protocol.json as proto

然后正常构造请求和拿到返回值

rsp = client.DoSomething(req)

下面最关键的一步来了:直接把 rsp 转换成一个 json

json_data = proto.struct_to_json(rsp)

嗯好了,尽情享用吧。


有人问啊,那逆向操作,就是拿到个完整的 json,给转成 Request 或者 Response,可以么?

额,暂时不会……学会了再来水文哈。

发表评论