首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python期货:我如何从“旋风”中的未来对象中获得json?

Python期货:我如何从“旋风”中的未来对象中获得json?
EN

Stack Overflow用户
提问于 2015-08-16 20:32:47
回答 1查看 4.3K关注 0票数 1

这是一个post处理程序:

handler.py

代码语言:javascript
复制
from imports import logic

@gen.coroutine
def post(self):
    data = self.request.body.decode('utf-8')
    params = json.loads(data)
    model_id= params['model_id']
    logic.begin(model_id)

logic对象从imports.py导入,其中它是从导入的类Logic实例化的。

imports.py :

代码语言:javascript
复制
import Models
import Logic

class Persist(object):
    def getModel(self, model_id):
        model = Models.findByModelId(model_id)
        return model


persist = Persist()
logic = Logic(persist)

logic.py

代码语言:javascript
复制
class Logic(object):
    def __init__(self, persist):
        self._persist = persist

    def begin(self, model_id):
         model = self._persist.get_model(model_id)
         print ("Model from persist : ")
         print (model)

get_model方法使用Models进行DB查询并返回未来的对象:

model.py

代码语言:javascript
复制
from motorengine.document import Document

class Models(Document):
    name = StringField(required=True)

def findByModelId(model_id):
    return Models.objects.filter(_id=ObjectId(model_id)).find_all()

这将在控制台中打印未来的对象:

代码语言:javascript
复制
<tornado.concurrent.Future object at 0x7fbb147047b8>

怎么才能把它转换成json呢?

EN

回答 1

Stack Overflow用户

发布于 2015-08-17 02:53:32

若要将Future解析为实际值,请将其放入协同线中:

代码语言:javascript
复制
@gen.coroutine
def begin(self, model_id):
     model = yield self._persist.get_model(model_id)
     print ("Model from persist : ")
     print (model)

任何调用coroutine的函数都必须是coroutine,并且它必须yield该coroutine的返回值才能得到它的返回值:

代码语言:javascript
复制
@gen.coroutine
def post(self):
    data = self.request.body.decode('utf-8')
    params = json.loads(data)
    model_id = params['model_id']
    model = yield logic.begin(model_id)
    print(model)

更高级的编码模式不需要遵循这些规则,但是首先,遵循这些基本规则。

有关从协同线调用协同线的更多信息,请参见重构龙卷风协同线

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32039646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档