类型错误:';汽车收藏&x27;对象在motor python中不可调用

类型错误:';汽车收藏&x27;对象在motor python中不可调用,python,mongodb,python-2.7,tornado,tornado-motor,Python,Mongodb,Python 2.7,Tornado,Tornado Motor,我正在尝试将打开函数上的websocket对象发送到客户端 然后它返回id和对象, 但它表示error:TypeError:“MotorCollection”对象在json.encode(self)中不可调用 请帮助您正在尝试对不可编码的对象进行编码-为什么不传递一个可编码的字典。如何进行?像这样的jsonpickle.encode({a:self}')?您需要什么值?问题是我在发送websocket对象时遇到问题!!!!。当我尝试编码({a:'+self+'})时,如何通过websocket对

我正在尝试将打开函数上的websocket对象发送到客户端 然后它返回id和对象, 但它表示error:TypeError:“MotorCollection”对象在json.encode(self)中不可调用
请帮助

您正在尝试对不可编码的对象进行编码-为什么不传递一个可编码的字典。如何进行?像这样的jsonpickle.encode({a:self}')?您需要什么值?问题是我在发送websocket对象时遇到问题!!!!。当我尝试编码({a:'+self+'})时,如何通过websocket对象发送json?好的-我想你还没有理解这里的核心问题。前端代码需要ChatWebSocket实例的哪些值?
#!/usr/bin/python27
import tornado
import tornado.websocket
import tornado.wsgi
import motor
import json
import jsonpickle
from tornado.ioloop import IOLoop

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        db = self.settings['db'] 
class ChatWebSocket(tornado.websocket.WebSocketHandler):
    clients = []
    ids={}
    def my_callback(result, error):
        print 'result', repr(result)
        IOLoop.instance().stop()
    def open(self):
        ChatWebSocket.clients.append(self)
        self.write_message(jsonpickle.encode(self))
    def on_message(self, message):
        def get_current_user(self):
        print(self)
        to=db.today.ensure_index()
        array=message
        data=json.loads(array)
        if  data['st']=='ty':
            for client in ChatWebSocket.clients:
                client.write_message('"me":"ty","con":'+data['whom']+' is  typing')
        elif (data['st']=='me'):
            print("ok")
        ChatWebSocket.ids[''+data['who']+'']=data['ob']
        for s in ChatWebSocket.ids:
            print(s)
        else: 
            doc={'who':data['who'],'whom':data['whom'],'mes':data['mes']}
            to.insert(doc,callback=my_callback)
            for client in ChatWebSocket.clients:
                client.write_message('"me":"ty","con":"'+data[mes]+'"')
    def on_close(self):
        ChatWebSocket.clients.remove(self)
db=motor.MotorClient().open_sync().chat 
tornado_app = tornado.web.Application([(r'/websocket', ChatWebSocket),
(r'.*', tornado.web.FallbackHandler), (r'/', MainHandler)],db=db)
tornado_app.listen(5069)
tornado.ioloop.IOLoop.instance().start()