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.

Reply via email to