Ошибка — объект AttributeError ‘list’ не имеет атрибута ‘encode’

#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. Исправьте программу, чтобы получить правильный тип. Удачи.