我正在尝试在Python中实现一个函数来向我的Twitter帐户发送消息。最常用的功能是:
params=urllib.parse.urlencode({'status':msg})
resp=urllib.request.urlopen('http://twitter.com/statuses/update.json',params)
resp.read()
我收到了这条消息: TypeError:POST数据应该是字节,可迭代的字节或文件对象。它不能是str类型。
我见过类似的Q& A,我找不到错误。实际上我从教科书中取出了这个功能并多次修改..
如果有人可以帮助我,我将不胜感激
答案 0 :(得分:1)
不是使用urllib
编写自己的,而是使用TwitterAPI库来做这样的事情。对于像Twitter这样的常见用途,你会发现通常其他人已经开发了一个完整的实现,使用这些东西可以让你继续做自己的代码,而不用担心基本的功能,以防如何谈到Twitter。
您可以通过简单的方式安装TwitterAPI:
pip install TwitterAPI
安装完成后,您所要做的就是使用以下内容(改编自TwitterAPI README)并添加您自己的代码以提供推文的实际内容:
from TwitterAPI import TwitterAPI
consumer_key = <your own key>
consumer_secret = <your own secret>
access_token_key = <your own token key>
access_token_secret = <your own token secret>
api = TwitterAPI(consumer_key, consumer_secret, access_token_key, access_token_secret)
msg = 'This is a tweet!'
request = api.request('statuses/update', {'status': msg})
print(request.status_code)
这个库的文档非常清楚,并且不仅仅是这个简单的用例。
此外,将来,如果您从事涉及互联网请求的其他工作,我强烈建议您查看requests
库而不是urllib。这将为您节省许多麻烦:
您可以通过以下方式安装requests
pip install requests
新年快乐!