2016-08-18 1 views
0

このコードは、エラーで実行されます。ループ内でtwitter.Api.PostUpdateを実行するには?

# some constants and auth before, looks not important 
    topPosts = reddit.get_subreddit('funny').get_top(limit=3) 
    for post in topPosts: 
     twitter.PostUpdate(status = post.title, media = post.url) 

コンソールログ:

Traceback (most recent call last): 
    File "script.py", line 17, in <module> 
    twitter.PostUpdate(status = post.title, media = post.url) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twitter/api.py", line 990, in PostUpdate 
    media_additional_owners) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twitter/api.py", line 1132, in UploadMediaChunked 
    boundary = bytes("--{0}".format(uuid4()), 'utf-8') 
TypeError: str() takes at most 1 argument (2 given) 

私はループでちょうどpost.labelをすれば、それは完璧に動作します。

私が1つ(ループなし)を実行すると、PostUpdateは完全に動作します。

PostUpdateは非同期ですが、それを修正する方法を見つけることができないと思います。助けてください。

答えて

1

これはpython-twitterライブラリのバグで、この部分はPRに修正されています。問題は、python2のbytesstrに等しく、python3では1つのみの引数を受け入れることです。bytesは2番目の引数としてエンコーディングが必要です。

関連する問題