我尝试使用FIEldList无济于事.我只看到以下字段定义:
'IntegerFIEld','floatFIEld','BooleanFIEld','BytesFIEld','StringFIEld','MessageFIEld','EnumFIEld',解决方法 有两种情况:
1)你的dict有一个明确定义的模式:这是ProtoRPC的最佳用例,如果可能的话,你应该尝试将它放入模式中.在这种情况下,您将使用MessageFIEld和一些与您的字典中的架构匹配的Message类.
例如,而不是
{'amount': 31,'type': 'fish',mine: False}
你可以定义
from protorpc import messagesclass MyCatch(messages.Message): amount = messages.IntegerFIEld(1) type = messages.StringFIEld(2) mine = messages.BooleanFIEld(3)
然后在字段via中使用此消息定义
messages.MessageFIEld(MyCatch,index,...)
2)您的dict没有明确定义的模式:在这种情况下,您可以使用Json将字典转储为字符串并请求ensure_ascii = True以确保返回类型是字节(str)对象.然后你可以使用BytesFIEld.
例如:
import Jsonclass MyMessage(messages.Message): some_dict = messages.BytesFIEld(1)my_dict = {'amount': 31,mine: False}message = MyMessage(some_dict=Json.dumps(my_dict,ensure_ascii=True))
Ensure_ascii的使用是可选的,因为True是默认值,但这可能会根据您的环境而改变.
相反,你可以使用pickle来序列化你的字典.方法pickle.dumps总是输出ASCII /二进制,所以通过交换pickle.dumps的Json.dumps并删除ensure_ascii = True,你会得到相同的结果.
总结以上是内存溢出为你收集整理的python – protoRPC:返回dict全部内容,希望文章能够帮你解决python – protoRPC:返回dict所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)