2009-12-07 4 views
1

protobuf Python documentation에서 SerializeAsString 함수를 볼 수 있습니다. 그러나이 경우처럼 이진 데이터의 문자열 버전을 제공합니다. 파이썬을 사용하여 protobuf 데이터의 바이너리 배열을 직렬화하고 파싱하는 방법이 있습니까?Python을 사용하여 Google 프로토웨어 메시지의 바이너리 직렬화를 얻으려면 어떻게해야합니까?

우리는 protobuf 메시지를 파일에 바이너리 데이터로 저장하는 C++ 응용 프로그램이 있습니다. 파이썬을 사용하여 파일을 읽고 쓰고 싶습니다.

+0

저는 Python 프로그래머가 아니지만 Javas String에는'getBytes()'메소드가 있습니다. –

답변

4

파이썬 문자열 따라서, SerializeAsString 반환 이진 데이터를 이진 데이터를 저장할 수 :

이러한 프로토의 파이썬 버전 줄은 튜토리얼 버퍼링 (buffering)이다.

0

그것은 당신이 원하는 것을 명확하지 :

  1. 하는합니다 (SerializeAsString 방법에서) 전체 메시지의 직렬화 된 형식과 뭔가. 이걸로 뭘하고 싶은지 확실하지 않아?
  2. protobuf 메시지 안에 바이트 문자열을 저장하십시오. 유형은 .proto 파일에, 바이트 문자열은 python 변수에 사용하십시오.
1

문자열은 파이썬에서 이진 데이터를 나타내는 일반적인 방법이라고 생각합니다. 정확히 무엇을하고 싶니?

[편집]

이 구조체 모듈에서보세요 : http://docs.python.org/library/struct.html

+0

답변을 업데이트했습니다. –

0
당신은 그들이 상자에 포장 도자기 얼마나 중요하지 않습니다 (프로토 버퍼를 직렬화 된 데이터를 가져 오기위한 파이썬 문자열을 사용할 수 있습니다

- 파이썬, 자바, C++ 또는 다른 언어). address_book.ParseFromString(f.read())

관련 문제