如何在python中使用twitter API获取推文?

如何在python中使用twitter API获取推文?,python,twitter,Python,Twitter,我是python的初学者。我使用以下代码根据输入查询获取tweet import urllib import urllib2 import json def getData(keyword): url = 'http://search.twitter.com/search.json' data = {'q': keyword, 'lang': 'en', 'result_type': 'recent'} params = urllib.urlencode(data)

我是python的初学者。我使用以下代码根据输入查询获取tweet

import urllib
import urllib2
import json
def getData(keyword):
    url = 'http://search.twitter.com/search.json'
    data = {'q': keyword, 'lang': 'en', 'result_type': 'recent'}
    params = urllib.urlencode(data)
    try:
        req = urllib2.Request(url, params)
        response = urllib2.urlopen(req)
        jsonData = json.load(response)
        tweets = []
        for item in jsonData['results']:
            tweets.append(item['text'])
        return tweets
    except urllib2.URLError, e:
        self.handleError(e)
    return tweets
tweets = getData("messi")
print tweet
但是我在上面的代码中得到了以下错误。 名称错误:未定义全局名称“self”。如何更正此错误?

如前所述,首先需要从代码中删除
self.
。 然后您可能会得到另一个错误,因为handleError函数没有在代码中的任何地方定义。因此,如果尚未定义handleError函数,则还必须定义它

看看python,了解更多关于类和对象的信息

import urllib
import urllib2
import json

#defining handleError
def handleError(e):
    #Error Handling code goes here

def getData(keyword):
    url = 'http://search.twitter.com/search.json'
    data = {'q': keyword, 'lang': 'en', 'result_type': 'recent'}
    params = urllib.urlencode(data)
    try:
        req = urllib2.Request(url, params)
        response = urllib2.urlopen(req)
        jsonData = json.load(response)
        tweets = []
        for item in jsonData['results']:
            tweets.append(item['text'])
        return tweets
    except urllib2.URLError, e:
        handleError(e) #removed self.
    return tweets
tweets = getData("messi")
print tweet

我猜你是在网上找到这个函数的,它是一个类的一部分。您可以删除
self.
并编写一个名为
handleError
的函数来处理此问题。您应该查看
twitter
包,它位于pip上。这根本不起作用,因为REST API v1已被弃用。如果不想自己处理整个OAuth过程,您需要通过OAuth-->进行身份验证,请查看其中一个Twitter包