باستخدام Python، كيف يمكنني الحصول على تسلسل ثنائي لرسالة Google Protobuf الخاصة بي؟

StackOverflow https://stackoverflow.com/questions/1859438

  •  13-09-2019
  •  | 
  •  

سؤال

أرى وظيفة SerializeasString في وثائق Protobuf Python., ، ولكن مثل هذا يوحي، هذا يعطيني نسخة سلسلة من البيانات الثنائية. هل هناك طريقة لاستسلال وتحليل مجموعة ثنائية من بيانات Protobuf باستخدام Python؟

لدينا تطبيق C ++ يخزن رسائل Protobuf كبيانات ثنائية في ملف. نود القراءة والكتابة إلى الملف باستخدام Python.

هل كانت مفيدة؟

المحلول

سلاسل بيثون يمكن أن تعقد البيانات الثنائية، وبالتالي SerializeAsString إرجاع البيانات الثنائية.

نصائح أخرى

أعتقد أن السلاسل هي الطريقة المعتادة لتمثيل البيانات الثنائية في بيثون. ماذا تريد بالضبط القيام به؟

تعديل

إلقاء نظرة على وحدة الهيكل: http://docs.python.org/library/Stric.html.

ليس من الواضح ما تريد القيام به:

  1. افعل شيئا مع الشكل المسلح لرسالة بأكملها (من طريقة SerializeasString). لست متأكدا مما تريد القيام به مع هذا؟
  2. تخزين سلسلة بايت داخل رسالة protobuf - مجرد استخدام bytes اكتب ملف .proto وسلسلة بايت في بيثون للمتغير.

يمكنك استخدام سلاسل Pythons للحصول على بيانات متسلسلة من البروتو (لا تهم كيف تتأخر - في Python أو Java أو C ++ أو أي لغة أخرى).

هذه هي الخط من إصدار Pythons من بروتو المخازن المؤقت التعليمية:address_book.ParseFromString(f.read())

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top