Есть ли простой способ преобразовать файлы ProtoBuf в файлы JSON?Python

Программы на Python
Anonymous
 Есть ли простой способ преобразовать файлы ProtoBuf в файлы JSON?

Сообщение Anonymous »

Я хотел бы начать с того, что я не буду программировать в Python и не использую JSON или Proto -файлы в мой обычный рабочий день. Я пытался выяснить, как преобразовать прото -файл в файл json. < /P>
Моя среда: < /p>
  • Использование Python3
  • На машине rhel 9.3
  • Я работаю в изолированной сети, поэтому я не могу поделиться кодом.
Я нашел пару сайтов, которые описывают, как преобразовать Pbuf в json:
https://docs.scuba.io/ Руководства/преобразование-протокол-буферы-protobuf-to-json-for-i
Здесь я могу преобразовать прото-файл в файл pyc, но я не знаю, что еще Делай оттуда. Инструкции говорят, что преобразовать его в DICT, затем в JSON. Я не знаю, почему они исключили эту часть в своей статье о «преобразовании буферов протокола (Protobuf) в JSON для приема». Итак, я отказался от этого. Файлы здесь, protobuf_json.py и protoc-gen-jsonfd. Мне пришлось изменить некоторые из их значений, таких как Long To Int, Unicode на STR и т. Д., Поскольку я использую Python3. Я запускаю команду < /p>

Код: Выделить всё

protoc -I/usr/local/include/ -I. --plugin=protoc-gen-jsonfd --jsonfd_out=. test.proto
Затем я получаю ошибку о TypeError: MemoryView: требуется байт-подобный объект, а не 'str' , в строке с req.parsefromString (data) . Я попробовал тип его, кодируя его, но затем я получил ошибку о UnicodeEncodeError: 'UTF-8' не может кодировать символ '\ uddc7' в позиции 23: суррогаты не разрешен . Я использую свой собственный файл test.proto. < /P>
есть ли способ сделать любой из кодов этого сайта?

или есть какой -нибудь код, который там уже существует, что будет выполнять эту задачу легко?

Подробнее здесь: https://stackoverflow.com/questions/793 ... json-files

Вернуться в «Python»