Ton*_*Ton 3 google-app-engine protorpc
我正在开发python和GAE,
当我尝试使用ProtoRPC进行Web服务时,我找不到让我的请求在消息中包含json格式数据的方法.像这样的例子:
请求格式:
{"owner_id":"some id","jsondata":[{"name":"peter","dob":"1911-1-1","aaa":"sth str","xxx":sth int}, {"name":...}, ...]}'
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
class some_function_name(messages.Message):
owner_id = messages.StringField(1, required=True)
jsondata = messages.StringField(2, required=True) #is there a json field instead of StringField?
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?
小智 6
你可能想要做的是使用MessageField.您可以在类定义的上方或内部定义嵌套消息,并将其用作字段定义的第一个参数.例如:
class Person(Message):
name = StringField(1)
dob = StringField(2)
class ClassRoom(Message):
teacher = MessageField(Person, 1)
students = MessageField(Person, 2, repeated=True)
Run Code Online (Sandbox Code Playgroud)
或者:
class ClassRoom(Message):
class Person(Message):
...
...
Run Code Online (Sandbox Code Playgroud)
这也会奏效.
不幸的是,如果你想要存储任意JSON,就像在任何类型的JSON数据中提前知道那样,那将无法工作.必须提前预定义所有字段.
我希望你使用MessageField仍然有帮助.
| 归档时间: |
|
| 查看次数: |
1684 次 |
| 最近记录: |