2016-02-23 4 views
0

Я ищу быстрый и простой ответ о Protobufs. Я понимаю, что это какая-то кодировка, которая сжимает огромные данные, зная ее формат, но я забочусь о том, чтобы понять это: как я могу получить исходный формат данных? Буквально, не зная всех деталей о том, как работают protobufs, есть ли исходная структура данных в JSON или CSV или XML, например информация заголовка, которая предоставляется protobuf для кодирования данных и декодирования их обратно, и где эта информация? Кажется, что .proto-файл - это нечто другое.Извлечь структуру данных/формат от Protobuf

Я пытаюсь собрать парсеры, которые терпят неудачу, когда я их запускал: parsepbf.py. Но, может быть, потому, что я не даю ему знать, каков базовый формат данных, это заголовок, а именно. И где искать этот заголовок, в каком файле?

+0

Возможно, вам следует прочитать [основы] (https://developers.google.com/protocol-buffers/)? –

+0

Точно. Я посмотрел на это. Слишком много информации, простой ответ на вопрос, где кодируется структура данных. – mel

+0

Что такое «сообщение», и как оно связано с определением структуры данных? Если сообщение определяет класс данных или что-то еще, почему это сообщение. Очень смущает. Работает ли Protobuf со структурными или неструктурированными данными? Вы должны знать структуру заранее, или это похоже на JSON? Мне нужен простой ответ, пожалуйста! – mel

ответ

2

Похоже, вы неправильно поняли Протобуфы. Это не формат сжатия. Protobuf - это альтернатива JSON, XML и т. Д .; это его собственный автономный формат и не содержит никаких других.

Целью файла .proto является определение структуры сообщений, которые вы хотите кодировать в формате Protobuf. Они называются «сообщениями», потому что обычно Protobuf используется для кодирования сообщений, отправленных между серверами, хотя иногда он также используется для кодирования записей, хранящихся на диске или в базах данных. Буферы протокола обычно не полезны без файла .proto для определения формата (ов), с которым вы хотите работать.

+0

Спасибо, это помогает. – mel

Смежные вопросы