Example #1
0
def make_complex():
    complex_msg = complex_pb2.ComplexMessage()

    # Assignment not allowed to composite field
    # one_dummy = complex_pb2.DummyMessage()
    # one_dummy.id = 1
    # one_dummy.name = "python"
    # complex_msg.one_dummy = one_dummy

    complex_msg.one_dummy.id = 123
    complex_msg.one_dummy.name = "I am dummy message"

    print(complex_msg)

    first = complex_msg.multiple_dummy.add()
    first.id = 23
    first.name = "this is first dummy"

    print(complex_msg)

    complex_msg.multiple_dummy.add(id=24, name="this is second dummy.")

    print(complex_msg)

    third_dummy = complex_pb2.DummyMessage()
    third_dummy.id = 1000
    third_dummy.name = "this is third element."
    complex_msg.multiple_dummy.extend([third_dummy])

    print(complex_msg)

    third_dummy.id = 100
    third_dummy.name = "I am changed now."
    print(third_dummy)

    with open('complex.bin', "wb") as f:
        print("write as binary.")
        bytes_string = complex_msg.SerializeToString()
        f.write(bytes_string)

    with open("complex.bin", "rb") as f:
        print("reading binary file.")
        simple_msg_read = complex_pb2.ComplexMessage().FromString(f.read())
        print(simple_msg_read)
Example #2
0
import complex_pb2

PB_FILE_PATH = 'complex.pb'
JSON_FILE_PATH = 'complex.json'

message = complex_pb2.ComplexMessage()
message.one_dummy.id = 12
message.one_dummy.name = 'dummy1'
multiple_dummy = complex_pb2.DummyMessage()
multiple_dummy.id = 1
multiple_dummy.name = 'dummy1'
message.multiple_dummy.append(multiple_dummy)
multiple_dummy.id = 2
multiple_dummy.name = 'dummy2'
message.multiple_dummy.append(multiple_dummy)
multiple_dummy.id = 3
multiple_dummy.name = 'dummy3'
message.multiple_dummy.append(multiple_dummy)
multiple_dummy.id = 4
multiple_dummy.name = 'dummy4'
message.multiple_dummy.append(multiple_dummy)


# 以二进制形式保存
f = open(PB_FILE_PATH, "wb")
f.write(message.SerializeToString())
f.close()

# 读message
message = complex_pb2.ComplexMessage()
f = open(PB_FILE_PATH, "rb")
Example #3
0
import complex_pb2 as complex_pb2

complex_message = complex_pb2.ComplexMessage()

complex_message.one_dummy.id = 123
complex_message.one_dummy.name = "I am a dummy message"

first_multiple_dummy = complex_message.multiple_dummy.add()
first_multiple_dummy.id = 345
first_multiple_dummy.name = "I'm the first element on an array"

complex_message.multiple_dummy.add(id=567, name="Second element")

third_dummy_message = complex_pb2.DummyMessage()
third_dummy_message.id = 999
third_dummy_message.name = "I'm the last one"
complex_message.multiple_dummy.extend([third_dummy_message])

# The result will not change
third_dummy_message.id = 111
print(third_dummy_message)

print(complex_message)