#python #python-3.x
#python #python-3.x
Вопрос:
import constants
import oauth2
import urllib.parse as urlparse
import json
#Create a consumer, which uses CONSUMER_KEY and CONSUMER_SECRET to identify our app uniquely
consumer = oauth2.Consumer(constants.CONSUMER_KEY, constants.CONSUMER_SECRET)
client = oauth2.Client(consumer)
#Use the client to perform a request for the request token
response, content = client.request(constants.REQUEST_TOKEN_URL, 'POST')
if response.status != 200:
print("An error occurred getting the token from Twitter!")
#Get the request token parsing the query string returned
request_token = dict(urlparse.parse_qsl(content.decode('utf-8')))
#Ask the user to authorize our app and give us the pin code
print("Go to the follwing site in your brower:")
print("{}?oauth_token={}".format(constants.AUTHORIZATION_URL, request_token['oauth_token']))
oauth_verifier = input("What is the PIN? ")
#Create a Token object which contains the request toen, and the verifier
token = oauth2.Token(request_token['oauth_token'], request_token['oauth_token_secret'])
token.set_verifier(oauth_verifier)
#Create a client with our consumer (our app) and the newly created (and verified) token
client = oauth2.Client(consumer, token)
#Ask Twitter for an acess token, and Twitter knows ot should give us it because we've verified the request token
response, content = client.request(constants.ACCESS_TOKEN_URL, 'POST')
access_token = dict(urlparse.parse_qs(content.decode('utf-8')))
print(access_token)
#Create an "authorized_token" Token object and use that to perfom Twitter API calls on behalf of user
authorized_token = oauth2.Token(access_token['oauth_token'], access_token['oauth_token_secret'])
authorized_client = oauth2.Client(consumer, authorized_token)
#Make Twittwe API calls!
response, content = authorized_client.request('https://api.twitter.com/1.1/search/tweets.json?q=computers filter:images', 'GET')
if response.status != 200:
print("An error occurred when searching!")
print(content.decode('utf-8'))
Я получил ошибку следующая ошибка — объект AttributeError ‘list’ не имеет атрибута ‘encode’.
Кто-нибудь мог бы объяснить мне, почему я получил эту ошибку, я не вижу никакой ошибки в своем коде.
Моя полная ошибка заключается в следующем коде:
Exception has occurred: AttributeError
'list' object has no attribute 'encode'
File "/home/bruno/Documents/Python/project/login.py", line 42, in <module>
response, content = authorized_client.request('https://api.twitter.com/1.1/search/tweets.json?q=computers filter:images', 'GET')
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib/python3.6/runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
Комментарии:
1. Было бы здорово, если бы вы включили полную трассировку ошибки, которая включает строку, в которой произошла ошибка… Вместо этого я скажу, что ошибка — это то, что он говорит. Вы пытаетесь закодировать список, но я предполагаю, что вы намеревались закодировать элементы внутри списка. Поэтому вы бы использовали индексацию для получения этих элементов
2. 1. Внимательно прочитайте ошибку и посмотрите, в какой строке она встречается. 2. Поставьте точку останова в этой строке. 3. С помощью отладчика проверьте тип объекта, который вы кодируете. 4. Подумайте, какой тип должен быть правильным. 5. Исправьте программу, чтобы получить правильный тип. Удачи.