proto file :
syntax = "proto2";
option java_outer_classname = "OpenRtb";
package com.google.openrtb;
message Person {
required string name = 1;
required int32 id = 2;
repeated Phone number = 3;
}
message Phone{
required string id = 5;
}
person_pb2.py:
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: person.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
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='person.proto',
package='com.google.openrtb',
syntax='proto2',
serialized_options=_b('B\007OpenRtb'),
serialized_pb=_b('\n\x0cperson.proto\x12\x12\x63om.google.openrtb\"M\n\x06Person\x12\x0c\n\x04name\x18\x01
\x02(\t\x12\n\n\x02id\x18\x02 \x02(\x05\x12)\n\x06number\x18\x03
\x03(\x0b\x32\x19.com.google.openrtb.Phone\"\x13\n\x05Phone\x12\n\n\x02id\x18\x05
\x02(\tB\tB\x07OpenRtb')
)
_PERSON = _descriptor.Descriptor(
name='Person',
full_name='com.google.openrtb.Person',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='name', full_name='com.google.openrtb.Person.name', index=0,
number=1, type=9, cpp_type=9, label=2,
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),
_descriptor.FieldDescriptor(
name='id', full_name='com.google.openrtb.Person.id', index=1,
number=2, type=5, cpp_type=1, label=2,
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),
_descriptor.FieldDescriptor(
name='number', full_name='com.google.openrtb.Person.number', index=2,
number=3, 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),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=36,
serialized_end=113,
)
_PHONE = _descriptor.Descriptor(
name='Phone',
full_name='com.google.openrtb.Phone',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='id', full_name='com.google.openrtb.Phone.id', index=0,
number=5, type=9, cpp_type=9, label=2,
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),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=115,
serialized_end=134,
)
_PERSON.fields_by_name['number'].message_type = _PHONE
DESCRIPTOR.message_types_by_name['Person'] = _PERSON
DESCRIPTOR.message_types_by_name['Phone'] = _PHONE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
Person = _reflection.GeneratedProtocolMessageType('Person',
(_message.Message,), dict(
DESCRIPTOR = _PERSON,
__module__ = 'person_pb2'
# @@protoc_insertion_point(class_scope:com.google.openrtb.Person)
))
_sym_db.RegisterMessage(Person)
Phone = _reflection.GeneratedProtocolMessageType('Phone', (_message.Message,),
dict(
DESCRIPTOR = _PHONE,
__module__ = 'person_pb2'
# @@protoc_insertion_point(class_scope:com.google.openrtb.Phone)
))
_sym_db.RegisterMessage(Phone)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
python code:
bidResponse = person_pb2.Person()
bidResponse.name = "<iframe
src=\"%%%%CLICK_URL_UNESC%%%%https://play.google.com\"></iframe>""
bidResponse.id = 123
bid_resp_bid = bidResponse.number.add()
bid_resp_bid.id = 'zhehsi'
p1 = bidResponse.SerializeToString()
print(p1)
## the result(binary data) like this :
b'\nG<iframe
src="%%%%CLICK_URL_UNESC%%%%https://play.google.com"></iframe>\x10\xc0\xc4\x07\x1a\x08*\x06zhehsi'
bid_esponse = person_pb2.Person()
bid_esponse.ParseFromString(p1)
p2 = json_format.MessageToDict(bid_esponse)
## parse the result(binary data) get:
{'name': '<iframe
src="%%%%CLICK_URL_UNESC%%%%https://play.google.com"></iframe>', 'id': 123456,
'number': [{'id': 'zhehsi'}]}
as you see ,string" <iframe
src=\"%%%%CLICK_URL_UNESC%%%%https://play.google.com"></iframe>" is not be
Serialized to binary .
It is not changed.But I parse it ,it is right . However google support team
said i am wrong.the "iframe tag" must be Serialized to binary,if
not they can not parse it. I do not know where i wrong.Can you check my code
where is wrong? or can you
Serialize the string("<iframe
src="%%%%CLICK_URL_UNESC%%%%https://play.google.com"></iframe>") to binary data?
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to protobuf+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/protobuf/8040016d-7863-4ade-aa02-f9ed239f7ba5%40googlegroups.com.