jim*_*imh 10 python json protocol-buffers
嘿,我知道在 Java 中有一个解决方案,我很想知道是否有人知道将 JSON 对象或文件转换为 protobuf 格式的 Python 3 解决方案。我会接受或者因为转换为对象是微不足道的。搜索 stackoverflow 站点,我只找到了 protobuf->json 的示例,但没有找到相反的示例。有一个非常古老的 repo 可以做到这一点,但它在 Python 2 中,我们的管道是 Python 3。一如既往,感谢任何帮助。
kin*_*pps 16
您要查找的库是google.protobuf.json_format. 您可以按照README 此处的说明进行安装。该库与 Python >= 2.7 兼容。
用法示例:
给定这样的 protobuf 消息:
message Thing {
string first = 1;
bool second = 2;
int32 third = 3;
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用这个库:
import json
from google.protobuf.json_format import Parse
message = Parse(json.dumps({
"first": "a string",
"second": True,
"third": 123456789
}), Thing())
print(message.first) # "a string"
print(message.second) # True
print(message.third) # 123456789
Run Code Online (Sandbox Code Playgroud)
走另一条路:
from google.protobuf.json_format import MessageToDict
message_as_dict = MessageToDict(message)
message_as_dict['first'] # == 'a string'
message_as_dict['second'] # == True
message_as_dict['third'] # == 123456789
Run Code Online (Sandbox Code Playgroud)