编码适用于 1 而不是 Twitter 中使用 python 的其他列表
Posted
技术标签:
【中文标题】编码适用于 1 而不是 Twitter 中使用 python 的其他列表【英文标题】:Encoding works for 1 and not for other list in Twitter using python 【发布时间】:2019-07-06 13:27:06 【问题描述】:我正在尝试使用 twitter 模块和 python 从 twitter 开始作弊数据。这是我的代码
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>
编码如何在我们的趋势中起作用而不是在世界趋势中起作用?
【问题讨论】:
我使用的是 windows-10 机器和 ATOM 编辑器 【参考方案1】:encode
是一个字符串的方法。
你有一个json对象,它没有这个方法。
当您print
一个对象时,它需要将该对象转换为您的输出编码的字符串表示形式(此处可能是 windows 编码)。如果其中有字符(例如表情符号)不在输出编码中,则会出现错误。
编码是一个困难的话题(也是 Python 中的一个痛点),但如果您想打印输出,则需要了解它们。
【讨论】:
以上是关于编码适用于 1 而不是 Twitter 中使用 python 的其他列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使 Twitter Bootstrap 工具提示有多行?
使用适用于 iOS 的 AddThis SDK,需要更改默认 Twitter 文本的“通过 @AddThis”
如何使用适用于 Android 的 Fabric Sdk 从 Twitter 注销