Python 如何以正确的方式从pycurl中提取

Python 如何以正确的方式从pycurl中提取,python,curl,asynchronous,streaming,pycurl,Python,Curl,Asynchronous,Streaming,Pycurl,我想编写一个伪模块,让一个人执行一个持续进行的GET请求(与使用Twitter Streamming API的请求非常相似),但不必在每次有人想要调用函数发出相同的GET请求时提供所有参数 在我的module.py中,我有 class viewResults(): def __init__(self,username,password,keyname,consume): self.buffer = "" self.consume = consume

我想编写一个伪模块,让一个人执行一个持续进行的GET请求(与使用Twitter Streamming API的请求非常相似),但不必在每次有人想要调用函数发出相同的GET请求时提供所有参数

在我的module.py中,我有

class viewResults():
    def __init__(self,username,password,keyname,consume):
        self.buffer = ""
        self.consume = consume
        self.conn = pycurl.Curl()  
        self.conn.setopt(pycurl.USERPWD, "%s:%s" % (username, password))  
        self.conn.setopt(pycurl.URL, "http://crowdprocess.no.de/"+keyname+"/results") 
        self.conn.setopt(pycurl.WRITEFUNCTION, self.on_receive)
    #   self.conn.setopt(pycurl.VERBOSE, 1)
    #   self.conn.setopt(pycurl.DEBUGFUNCTION, self.debug)
        self.conn.perform()

#   def debug(self,debug_type,debug_message):
#       print 'type: '+str(debug_type)+' message'+str(debug_message)

    def on_receive(self, data):  
        self.buffer += data  
        if data.endswith("\r\n") and self.buffer.strip():  
            content = json.loads(self.buffer)
            self.consume(content)
            self.buffer = ""
from module import viewResults

def consume(content):
    print content

viewResults('username','password','keyname',consume)
在index.py上我有

class viewResults():
    def __init__(self,username,password,keyname,consume):
        self.buffer = ""
        self.consume = consume
        self.conn = pycurl.Curl()  
        self.conn.setopt(pycurl.USERPWD, "%s:%s" % (username, password))  
        self.conn.setopt(pycurl.URL, "http://crowdprocess.no.de/"+keyname+"/results") 
        self.conn.setopt(pycurl.WRITEFUNCTION, self.on_receive)
    #   self.conn.setopt(pycurl.VERBOSE, 1)
    #   self.conn.setopt(pycurl.DEBUGFUNCTION, self.debug)
        self.conn.perform()

#   def debug(self,debug_type,debug_message):
#       print 'type: '+str(debug_type)+' message'+str(debug_message)

    def on_receive(self, data):  
        self.buffer += data  
        if data.endswith("\r\n") and self.buffer.strip():  
            content = json.loads(self.buffer)
            self.consume(content)
            self.buffer = ""
from module import viewResults

def consume(content):
    print content

viewResults('username','password','keyname',consume)
所以我只想传递参数username、password、keyname和“consume”函数,当缓冲区充满有效的JSON数据时应该调用这些参数

实际发生的情况是,请求已经发出,如果启用了VERBOSE,我可以看到所有数据都已到达,但是“更高级别的消费”函数get什么都没有

我怎样才能做到这一点?
谢谢。

据我所知,您想归档调试数据吗

创建自定义调试函数以存储数据:


在您的邮政编码中,我看不到您在接收(自我、数据)时的打印内容。
添加到它sys.stderr.write(“%s\n”%data)