【发布时间】:2019-08-12 18:24:34
【问题描述】:
我正在尝试使用 python 构建一个搜索应用程序。我已经移除了我的密钥。
import requests
from requests_oauthlib import OAuth1
import json
from urllib.parse import urlparse
#Endpoints
url_rest = "https://api.twitter.com/1.1/search/tweets.json"
url_streaming = "https://stream.twitter.com/1.1/statuses/sample.json"
#Define parameters
params = {
app_key:'myPersonalKey',
app_secret:'myPersonalKey',
oauth_token:'myPersonalKey',
oauth_token_secret:'myPersonalKey'
}
auth = OAuth1(
auth_params['myPersonalKey'],
auth_params['myPersonalKey'],
auth_params['myPersonalKey'],
auth_params['myPersonalKey']
)
q = '@marchmadness'
params = {'q' : q, 'count' : 100, 'lang' : 'en'}
results = requests.get(url_rest,params=params, auth=auth)
for tweet in results.json()['statuses']:
print (tweet['text'])
stream_results = requests.get(url_streaming, stream=True,auth=auth)
for line in stream_results.iter_lines():
try:
decoded_line = line.decode('utf-8')
print(json.loads(decoded_line)['text'])
except:
pass
这是我得到的错误: NameError Traceback(最近一次调用最后一次) 在 10 #定义参数 11 参数 = { ---> 12 app_key:'', 13 app_secret:'', 14 oauth_token:'',
NameError: name 'app_key' 未定义
来自《Python 社交媒体分析》一书
【问题讨论】:
-
您需要将
params字典中的键用引号括起来,以便它们成为字符串 -
我试过了,但它不起作用。
-
params = { 'app_key':'YOUR_APP_KEY', 'app_secret':'YOUR_APP_SECRET', 'oauth_token':'USER_OAUTH_TOKEN', 'oauth_token_secret':'USER_OAUTH_TOKEN_SECRET' } auth = OAuth1( auth_params[' app_key'],auth_params['app_secret'],auth_params['oauth_token'],auth_params['oauth_token_secret'])
-
现在的问题是 NameError: name 'auth_params' is not defined