def GetPersonByPhoneNumber(self, request, context): person = get_person(self.db, request) if person is None: return addressbook_pb2.Person() else: print("protobuf size: " + str(sys.getsizeof(person.SerializeToString()))) return person
def create_person(): person = addressbook_pb2.Person() person.id = 1 person.name = "John Doe" person.email = "*****@*****.**" phone = person.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.HOME return person
def extendPhones(num, typ): franekPhone2 = addressbook_pb2.Person().PhoneNumber() franekPhone2.number = num if typ == "HOME": franekPhone2.type = franekD.HOME else: franekPhone2.type = franekD.WORK franekD.phones.extend([franekPhone2])
def makePerson(): person = addressbook_pb2.Person() person.id = 1234 person.name = "John Doe" person.email = "*****@*****.**" phone = person.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.HOME person.phones.add(number="333-4444", type=addressbook_pb2.Person.WORK) return person
def render(self, resp: requests.models.Response) -> Textarea: "Return deserialized Protobuf objects as text inside a Textarea." obj = resp.content import addressbook_pb2 person = addressbook_pb2.Person() person.ParseFromString(obj) self.data = person layout = Layout(width='100%', height='100%') ta = Textarea(layout=layout) ta.value = str(person) return ta
def read_route_guide_database(): person_list = [] with open("person_db.json") as person_db_file: for item in json.load(person_db_file): phones = get_phones_number(item['id']) person = addressbook_pb2.Person(id=item['id'], name=item['name'], email=item['email'], phones=phones) person_list.append(person) return person_list
def Write(stub): person = addressbook_pb2.Person() person.id = 1234 person.name = "Asim" person.email = "*****@*****.**" phone_number = person.phones.add() phone_number.number = "5138008" phone_number.type = addressbook_pb2.Person.HOME # PromptForAddress(person) response = stub.WriteToBook(person) if response.reply == "OK": print("Person added into address book") else: print("Something went wrong")
def make_address_book_entry(): ab = addressbook_pb2.AddressBook() p1 = addressbook_pb2.Person() p1.name = 'rahul' p1.id = 1 p1.email = '*****@*****.**' phones = p1.phones phones.append( addressbook_pb2.Person.PhoneNumber(number='1234567890', type=addressbook_pb2.Person.MOBILE)) print(p1) ab.people.extend([p1]) print(ab) p2 = ab.people.add() p2.name = 'simran' p2.id = 2 p2.email = '*****@*****.**' p2.phones.add(number='0987654321', type=addressbook_pb2.Person.WORK) print(ab)
import urllib import addressbook_pb2 f = urllib.urlopen("http://localhost:9998/person") person = addressbook_pb2.Person() person.ParseFromString(f.read()) print person.name
import addressbook_pb2 # create the person object person = addressbook_pb2.Person() person.id = 1234 person.name = "John Doe" person.email = "*****@*****.**" # add a phone to the person phone = person.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.HOME # HOME is an enumerated value # is it properly initialized? person.Isinitialized() # Abe abe = addressbook_pb2.Person() abe.id = 2000 abe.name = "Abe Lincoln" abe.email = "*****@*****.**" abe_phone = abe.phones.add() abe_phone.number = "555-2000" abe_phone.type = addressbook_pb2.Person.WORK print ("Abraham Lincoln:", abe) # George geo = addressbook_pb2.Person() geo.id = 3000
import addressbook_pb2 person = addressbook_pb2.Person() person.id = 1234 person.name = "John Doe" person.email = "*****@*****.**" phone = person.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.PhoneType.HOME serialized_person = person.SerializeToString() print(serialized_person) deserialized_person = addressbook_pb2.Person().FromString(serialized_person) print(deserialized_person)
#!/usr/bin/env python #coding: utf-8 # 用一个例子说明使用Python操作PB的方法: # 1.定义.proto文件。 # 2.编译.proto文件产出Python代码。 # 3.使用Python API读写message。 # 该例子完成一个地址簿程序,能够对地址簿信息进行读写,地址簿中每个人的信息包括姓名、ID、email、联系电话。 import addressbook_pb2 as addressbook person = addressbook.Person() person.id = 1234 person.name = "John Doe" person.email = "*****@*****.**" phone = person.phone.add( ) # phone字段是符合类型,调用add()方法初始化新实例。如果phone字段是标量类型,直接append()添加新元素即可。 phone.number = "555-4321" phone.type = addressbook.Person.HOME # 如果访问.proto文件中未定义的域,抛出AttributeError,如果为某个域赋予了错误类型的值,抛出TypeError。在某个域未赋值前访问该域,返回这个域的默认值。 # 枚举 # 有整型值的符号常量,比如addressbook.Person.WORK的值是2。 # 标准message方法 # person.Clear() print person.IsInitialized() print person.name # 每个Message类含有一些检查或操作整个message的方法,比如: # • IsInitialized():检查是否所有required域都已赋值。 # • str():返回message的可读形式,可以通过str(message)或者print message触发,用于调试代码。
def read(): f = open("out", "rb") p = addressbook_pb2.Person() p.ParseFromString(f.read()) f.close() return p
def read(): f = open("outJson", "r") p = json_format.Parse(f.read(), addressbook_pb2.Person()) f.close() return p
import addressbook_pb2 pythonServerPerson = addressbook_pb2.Person() pythonServerPerson.id = 1 pythonServerPerson.name = "From Python Server" pythonServerPerson.email = "*****@*****.**" phone = pythonServerPerson.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.HOME pythonClientPerson = addressbook_pb2.Person() pythonClientPerson.id = 2 pythonClientPerson.name = "From Python Client" pythonClientPerson.email = "*****@*****.**" phone = pythonClientPerson.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.HOME javaServerPerson = addressbook_pb2.Person() javaServerPerson.id = 3 javaServerPerson.name = "From Java Server__" javaServerPerson.email = "*****@*****.**" phone = javaServerPerson.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.HOME javaClientPerson = addressbook_pb2.Person() javaClientPerson.id = 4 javaClientPerson.name = "From Java Client__" javaClientPerson.email = "*****@*****.**" phone = javaClientPerson.phones.add()
import addressbook_pb2 person = addressbook_pb2.Person() person.id = 1234 person.name = "John Doe" person.email = "*****@*****.**" phone = person.phones.add() phone.number = "555-4321" phone.type = addressbook_pb2.Person.HOME print('Before serialize:') print(person) with open('person.bin', 'wb') as f: f.write(person.SerializeToString()) print('Read back:') with open('person.bin', 'rb') as f: read_person = addressbook_pb2.Person() read_person.ParseFromString(f.read()) print(read_person)
# extend list of phones for another phone def extendPhones(num, typ): franekPhone2 = addressbook_pb2.Person().PhoneNumber() franekPhone2.number = num if typ == "HOME": franekPhone2.type = franekD.HOME else: franekPhone2.type = franekD.WORK franekD.phones.extend([franekPhone2]) extendPhones("234234123", "WORK") # how to extend result list for one more existing Persong (element) robZ = addressbook_pb2.Person() robZ.name ="Robert Zych" robZ.id = 2236 robZ.email = "robz@gnail" addressYellowBook.people.extend([robZ]) #print(franekD) print(addressYellowBook)