JSON в Протобуф в Python - PullRequest
       10

JSON в Протобуф в Python

1 голос
/ 21 февраля 2020

Эй, я знаю, что есть решение для этого в Java, мне любопытно узнать, знает ли кто-нибудь решение Python 3 для преобразования JSON объекта или файла в формат protobuf. Я бы согласился, либо преобразование в объект тривиально. Ища сайт stackoverflow, я нашел только примеры protobuf -> json, но не наоборот. Есть один очень старый репозиторий, который может сделать это, но он находится в Python 2, а наш конвейер - Python 3. Любая помощь, как всегда, приветствуется.

1 Ответ

0 голосов
/ 22 февраля 2020

Библиотека, которую вы ищете: google.protobuf.json_format. Вы можете установить его с указаниями в README здесь . Библиотека совместима с Python> = 2.7.

Пример использования:

При наличии такого сообщения protobuf, как это:

message Thing {
    string first = 1;
    bool second = 2;
    int32 third = 3;
}

Вы будете использовать библиотеку примерно так :

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

К go наоборот:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...