如何在循环中执行twitter.Api.PostUpdate?

How to execute twitter.Api.PostUpdate in loop?

此代码执行错误:

  # 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 在循环中,它会完美地工作。

如果我只执行一个(w/o 循环)PostUpdate 它会完美运行。

我认为这是因为 PostUpdate 是异步的,但不知道如何修复它。请帮忙。

这是 python-twitter 库中的错误,已在 PR 中修复。问题是 python2 中的 bytes 等于 str 并且只接受一个参数,而 python3 中的 bytes 需要编码作为第二个参数。