This commit is contained in:
luzhisheng 2021-08-13 14:53:16 +08:00
parent fb417dac57
commit cca6a0db01
13 changed files with 6318 additions and 0 deletions

8
protobuf/README.MD Normal file
View File

@ -0,0 +1,8 @@
输出到文件
protoc --decode_raw < protobuf/dy > protobuf/dy.txt
编译文件
protoc --python_out=./ protobuf/addressbook.proto

0
protobuf/__init__.py Normal file
View File

View File

@ -0,0 +1,26 @@
syntax = "proto3";
// message
message Person {
string name = 1;
int32 id = 2;
string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
// message
message PhoneNumber {
repeated string number = 1;
PhoneType type = 2;
}
// 使
repeated PhoneNumber phones = 4;
}
message AddressBook {
repeated Person people = 1;
}

213
protobuf/addressbook_pb2.py Normal file
View File

@ -0,0 +1,213 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: protobuf/addressbook.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='protobuf/addressbook.proto',
package='',
syntax='proto3',
serialized_options=None,
create_key=_descriptor._internal_create_key,
serialized_pb=b'\n\x1aprotobuf/addressbook.proto\"\xc3\x01\n\x06Person\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12#\n\x06phones\x18\x04 \x03(\x0b\x32\x13.Person.PhoneNumber\x1a>\n\x0bPhoneNumber\x12\x0e\n\x06number\x18\x01 \x03(\t\x12\x1f\n\x04type\x18\x02 \x01(\x0e\x32\x11.Person.PhoneType\"+\n\tPhoneType\x12\n\n\x06MOBILE\x10\x00\x12\x08\n\x04HOME\x10\x01\x12\x08\n\x04WORK\x10\x02\"&\n\x0b\x41\x64\x64ressBook\x12\x17\n\x06people\x18\x01 \x03(\x0b\x32\x07.Personb\x06proto3'
)
_PERSON_PHONETYPE = _descriptor.EnumDescriptor(
name='PhoneType',
full_name='Person.PhoneType',
filename=None,
file=DESCRIPTOR,
create_key=_descriptor._internal_create_key,
values=[
_descriptor.EnumValueDescriptor(
name='MOBILE', index=0, number=0,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='HOME', index=1, number=1,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
_descriptor.EnumValueDescriptor(
name='WORK', index=2, number=2,
serialized_options=None,
type=None,
create_key=_descriptor._internal_create_key),
],
containing_type=None,
serialized_options=None,
serialized_start=183,
serialized_end=226,
)
_sym_db.RegisterEnumDescriptor(_PERSON_PHONETYPE)
_PERSON_PHONENUMBER = _descriptor.Descriptor(
name='PhoneNumber',
full_name='Person.PhoneNumber',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='number', full_name='Person.PhoneNumber.number', index=0,
number=1, type=9, cpp_type=9, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='type', full_name='Person.PhoneNumber.type', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=119,
serialized_end=181,
)
_PERSON = _descriptor.Descriptor(
name='Person',
full_name='Person',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='name', full_name='Person.name', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=b"".decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='id', full_name='Person.id', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='email', full_name='Person.email', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=b"".decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
_descriptor.FieldDescriptor(
name='phones', full_name='Person.phones', index=3,
number=4, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[_PERSON_PHONENUMBER, ],
enum_types=[
_PERSON_PHONETYPE,
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=31,
serialized_end=226,
)
_ADDRESSBOOK = _descriptor.Descriptor(
name='AddressBook',
full_name='AddressBook',
filename=None,
file=DESCRIPTOR,
containing_type=None,
create_key=_descriptor._internal_create_key,
fields=[
_descriptor.FieldDescriptor(
name='people', full_name='AddressBook.people', index=0,
number=1, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=228,
serialized_end=266,
)
_PERSON_PHONENUMBER.fields_by_name['type'].enum_type = _PERSON_PHONETYPE
_PERSON_PHONENUMBER.containing_type = _PERSON
_PERSON.fields_by_name['phones'].message_type = _PERSON_PHONENUMBER
_PERSON_PHONETYPE.containing_type = _PERSON
_ADDRESSBOOK.fields_by_name['people'].message_type = _PERSON
DESCRIPTOR.message_types_by_name['Person'] = _PERSON
DESCRIPTOR.message_types_by_name['AddressBook'] = _ADDRESSBOOK
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
Person = _reflection.GeneratedProtocolMessageType('Person', (_message.Message,), {
'PhoneNumber' : _reflection.GeneratedProtocolMessageType('PhoneNumber', (_message.Message,), {
'DESCRIPTOR' : _PERSON_PHONENUMBER,
'__module__' : 'protobuf.addressbook_pb2'
# @@protoc_insertion_point(class_scope:Person.PhoneNumber)
})
,
'DESCRIPTOR' : _PERSON,
'__module__' : 'protobuf.addressbook_pb2'
# @@protoc_insertion_point(class_scope:Person)
})
_sym_db.RegisterMessage(Person)
_sym_db.RegisterMessage(Person.PhoneNumber)
AddressBook = _reflection.GeneratedProtocolMessageType('AddressBook', (_message.Message,), {
'DESCRIPTOR' : _ADDRESSBOOK,
'__module__' : 'protobuf.addressbook_pb2'
# @@protoc_insertion_point(class_scope:AddressBook)
})
_sym_db.RegisterMessage(AddressBook)
# @@protoc_insertion_point(module_scope)

BIN
protobuf/dy Normal file

Binary file not shown.

2
protobuf/dy.proto Normal file
View File

@ -0,0 +1,2 @@
syntax = "proto3";

5647
protobuf/dy.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
protobuf/dy2 Normal file

Binary file not shown.

379
protobuf/dy2.txt Normal file
View File

@ -0,0 +1,379 @@
1 {
1: "WebcastMemberMessage"
2 {
1 {
1: "WebcastMemberMessage"
2: 6995037884446905351
3: 6995027727204076325
6: 1
8 {
1: "live_room_enter_toast"
2: "{0:user} \346\235\245\344\272\206{1:string}"
3 {
1: "#b8ffffff"
4: 400
}
4 {
1: 11
2 {
1: "#8CE7FF"
4: 400
}
21 {
1 {
1: 4503658474543320
2: 3109041948
3: "\346\265\201\346\260\264\345\271\264\351\225\277\357\274\201"
4: 1
6: 1
9 {
1: "https://p6.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
1: "https://p3.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
1: "https://p9.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
2: "100x100/7290000cf374228244bb"
}
21 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
21 {
1: "http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
2: "webcast/fansclub_level_v5_5.png"
6: 7
8 {
1: "\350\256\270\351\223\266\345\267\235"
2: "#FFFFFF"
3: 5
}
}
22 {
1: 29
2: 32
}
23 {
6: 8
19 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
20 {
1: "http://p6-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
2: "webcast/aweme_pay_grade_2x_5_9.png"
3: 12
4: 12
6: 1
}
}
24 {
1 {
4 {
1: "\010\000\022\000"
}
}
2 {
1: 1
2 {
1: "\350\256\270\351\223\266\345\267\235"
2: 5
3: 1
4: "\n\242\002\010\002\022\235\002\nRhttp://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image\nRhttp://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image\nRhttp://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image\022\037webcast/fansclub_level_v5_5.png\022\t\350\256\270\351\223\266\345\267\235"
6: 3861098983857805
}
}
}
32: ""
38: "dywxjueomhyt"
46: "MS4wLjABAAAAHfGA9BetxsAhnh6Dszyuh7ZqxPVs8MYW6lzUBdoNxOztSE69ZsIhZHwPW6lr9MT7"
54: 1
61 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
61 {
1: "http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
2: "webcast/fansclub_level_v5_5.png"
6: 7
8 {
1: "\350\256\270\351\223\266\345\267\235"
2: "#FFFFFF"
3: 5
}
}
66: 1
}
}
}
}
9: 1
10: 1
11: 42000
17: 1
}
2 {
1: 4503658474543320
2: 3109041948
3: "\346\265\201\346\260\264\345\271\264\351\225\277\357\274\201"
4: 1
6: 1
9 {
1: "https://p6.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
1: "https://p3.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
1: "https://p9.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
2: "100x100/7290000cf374228244bb"
}
21 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
21 {
1: "http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
2: "webcast/fansclub_level_v5_5.png"
6: 7
8 {
1: "\350\256\270\351\223\266\345\267\235"
2: "#FFFFFF"
3: 5
}
}
22 {
1: 29
2: 32
}
23 {
6: 8
19 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
20 {
1: "http://p6-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
2: "webcast/aweme_pay_grade_2x_5_9.png"
3: 12
4: 12
6: 1
}
}
24 {
1 {
4 {
1 {
1: 0
2: ""
}
}
}
2 {
1: 1
2 {
1: "\350\256\270\351\223\266\345\267\235"
2: 5
3: 1
4 {
1 {
1: 2
2 {
1: "http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
2: "webcast/fansclub_level_v5_5.png"
}
}
2: "\350\256\270\351\223\266\345\267\235"
}
6: 3861098983857805
}
}
}
32: ""
38: "dywxjueomhyt"
46: "MS4wLjABAAAAHfGA9BetxsAhnh6Dszyuh7ZqxPVs8MYW6lzUBdoNxOztSE69ZsIhZHwPW6lr9MT7"
54: 1
61 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
61 {
1: "http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
2: "webcast/fansclub_level_v5_5.png"
6: 7
8 {
1: "\350\256\270\351\223\266\345\267\235"
2: "#FFFFFF"
3: 5
}
}
66: 1
}
3: 10570
10: 1
18 {
1: "live_room_enter_toast"
2: "{0:user} \346\235\245\344\272\206{1:string}"
3 {
1: "#b8ffffff"
4: 400
}
4 {
1: 11
2 {
1: "#8CE7FF"
4: 400
}
21 {
1 {
1: 4503658474543320
2: 3109041948
3: "\346\265\201\346\260\264\345\271\264\351\225\277\357\274\201"
4: 1
6: 1
9 {
1: "https://p6.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
1: "https://p3.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
1: "https://p9.douyinpic.com/aweme/100x100/7290000cf374228244bb.jpeg?from=4010531038"
2: "100x100/7290000cf374228244bb"
}
21 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
21 {
1: "http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
2: "webcast/fansclub_level_v5_5.png"
6: 7
8 {
1: "\350\256\270\351\223\266\345\267\235"
2: "#FFFFFF"
3: 5
}
}
22 {
1: 29
2: 32
}
23 {
6: 8
19 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
20 {
1: "http://p6-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/aweme_pay_grade_2x_5_9.png~tplv-obj.image"
2: "webcast/aweme_pay_grade_2x_5_9.png"
3: 12
4: 12
6: 1
}
}
24 {
1 {
4 {
1 {
1: 0
2: ""
}
}
}
2 {
1: 1
2 {
1: "\350\256\270\351\223\266\345\267\235"
2: 5
3: 1
4 {
1: "\010\002\022\235\002\nRhttp://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image\nRhttp://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image\nRhttp://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image\022\037webcast/fansclub_level_v5_5.png"
2: "\350\256\270\351\223\266\345\267\235"
}
6: 3861098983857805
}
}
}
32: ""
38: "dywxjueomhyt"
46: "MS4wLjABAAAAHfGA9BetxsAhnh6Dszyuh7ZqxPVs8MYW6lzUBdoNxOztSE69ZsIhZHwPW6lr9MT7"
54: 1
61 {
1: "http://p9-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
1: "http://p3-webcast.douyinpic.com/img/webcast/user_grade_level_v5_8.png~tplv-obj.image"
2: "webcast/user_grade_level_v5_8.png"
3: 16
4: 32
6: 1
}
61 {
1: "http://p3-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p9-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
1: "http://p6-webcast.douyinpic.com/img/webcast/fansclub_level_v5_5.png~tplv-obj.image"
2: "webcast/fansclub_level_v5_5.png"
6: 7
8 {
1: "\350\256\270\351\223\266\345\267\235"
2: "#FFFFFF"
3: 5
}
}
66: 1
}
}
}
}
}
3: 6995037884446905351
}

6
protobuf/people.bin Normal file
View File

@ -0,0 +1,6 @@
'
python @youyuanxue.com"
32
47

17
protobuf/加密文件.py Normal file
View File

@ -0,0 +1,17 @@
from protobuf import addressbook_pb2
address_book = addressbook_pb2.AddressBook()
person = address_book.people.add()
person.id = 11
person.name = "python"
person.email = "@youyuanxue.com"
phone_number = person.phones.add()
phone_number.number.extend(['32', '47'])
phone_number.type = 1
print(address_book.SerializeToString())
with open("people.bin", "wb") as f:
f.write(address_book.SerializeToString())

19
protobuf/解密文件.py Normal file
View File

@ -0,0 +1,19 @@
from protobuf import addressbook_pb2
def list_people(address_book):
for person in address_book.people:
print("person id:", person.id)
print("person name:", person.name)
print("person email:", person.email)
for phone_number in person.phones:
print(phone_number.number)
address_book = addressbook_pb2.AddressBook()
with open("people.bin", "rb") as f:
address_book.ParseFromString(f.read())
list_people(address_book)

View File

@ -0,0 +1 @@