Bufory protokołów Google (protobuf) w Python3 - problem ParseFromString (kodowanie?)


Mam bufory protokołów Google 80% pracujące w Python3. Mój plik .proto działa, koduję dane, życie jest prawie dobre.
Problem polega na tym, że nie mogę uzyskać wyniku ParseFromString w SerializeToString.
Kiedy drukuję SerializeToString, wygląda to tak, jak się spodziewałem - dość zwarta reprezentacja binarna (poprzedzona b ').
Domyślam się, że może to być różnica w tym, jak Python2 i Python3 obsługują ciągi znaków. Putput SerializeToString to bajty, a nie ciąg.
Druki SerializeToString (typ Pythona -):
b'\x10\xd7\xeb\x8e\xcd\x04\x1a\x0cnamegoeshere2@\x08\x80\xf8\xde\xc3\x9f\xb0\x81\x89\x14\x11\x00\x00\x00\x00\x00\x80d\xc0\x19\x00\x00\x00\x00\x00\xc0m@!\x00\x00\x00\x00\x00\x80R\xc0)\x00\x00\x00\x00\x00x\xb7\xc01\x00\x00\x00\x00\x00\x8c\x95@9\x00\x00\x00\x00\x00\x16\xb2@'

Wynik ParseFromString (komunikat):
None

Nie przewiduje się żadnego błędu ...
Tak więc - przypuszczam, że wszystko, co muszę zrobić, to .decode () wygenerowany obiekt bajtowy, problem polega na tym, że nie mam pojęcia, na czym polega to kodowanie. Próbowałem UTF-8, -16, Latin-1 i kilku innych bez powodzenia. Moje google fu jest mocne, ale nie znalazłem nic na ten temat.
Każda pomoc byłaby bardzo mile widziana.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

ParseFromString
to metoda - nic nie zwraca, a raczej wypełnia
self
przeanalizowaną treścią. Użyj go jak:
message = MyMessageType()
message.ParseFromString(data)
print message.some_field

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się