Кодировка работает для 1, а не для другого списка в Twitter с использованием Python - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь начать обманывать данные из твиттера с помощью твиттерного модуля и python.Вот мой код

import twitter

import win_unicode_console
win_unicode_console.enable()


CONSUMER_KEY = 'xxxxxxxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxx'
OAUTH_TOKEN = 'xxxxxxxxxxxxxxxxx'
OAUTH_TOKEN_SECRET = 'xxxxxxxxxxxx'

auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET,
                       CONSUMER_KEY, CONSUMER_SECRET)
twitter_api = twitter.Twitter(auth=auth)

print(twitter_api)

WORLD_WOE_ID = 1
US_WOE_ID = 23424977

world_trends = twitter_api.trends.place(_id=WORLD_WOE_ID)
us_trends = twitter_api.trends.place(_id=US_WOE_ID)

print(us_trends)
print(world_trends)

Я получаю ошибку кодирования.поэтому я использовал

print((us_trends).encode('utf-8'))

, что привело к

AttributeError: 'TwitterListResponse' object has no attribute 'encode'

, поэтому я решил использовать модуль win_unicode_console

Но что сбивает с толку то, что us_trends возвращает значение.

[{'trends': [{'name': 'El Chapo', 'url': 'http://twitter.com/search?q=%22El+Chapo%22', 'promoted_content': None, 'query': '%22El+Chapo%22', 'tweet_volume': 103536}, {'name': 'Antonio Brown', 'url': 'http://twitter.com/search?q=%22Antonio+Brown%22', 'promoted_

но утверждение

print(world_trends)

дает ниже ошибку

File "C:\Users\nawendu\Desktop\TWIT.PY", line 25, in <module>
print(world_trends)
File 
line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 24- 
29: character maps to <undefined>

Как кодирование может работать в нас, а не в мировых тенденциях ??

1 Ответ

0 голосов
/ 13 февраля 2019

encode - это метод строки .

У вас есть объект json, у него нет этого метода.

Когда вы printобъект, необходимый для преобразования объекта в строковое представление для вашей выходной кодировки (возможно, здесь используется кодировка windows).Если в нем есть символы (например, эмодзи), которых нет в выходной кодировке, вы получите ошибку.

Кодировки - сложная тема (и болевая точка в Python), но вам необходимо изучитьо них, если вы хотите распечатать вывод.

...