0

申し訳ありませんが、これは簡単です。

PythonおよびTwitterのストリーミングAPIとのPythonインターフェースの新機能であり、Python3.2でtweetstreamを使用しようとしています。

import tweetstream
stream = tweetstream.FilterStream(username = "myusername", password = "mypassword", track = bytes("oprah", encoding = "utf-8"))
for tweet in stream:
    print(tweet)

スロー:

TypeError:シーケンス項目0:予期されるstrインスタンス、intが見つかりました

以前に文字列を渡そうとしたため、「track」引数をエンコードしました。

TypeError:POSTデータはバイトまたはバイトの反復可能である必要があります。strにすることはできません。

ありがとう。

4

1 に答える 1

0

あなたの問題は、Python2 パッケージで Python3 を使用していることです。

Python3 バイトの情報については、こちらを参照してください。

http://docs.python.org/release/3.0.1/library/functions.html#bytes

これも:

http://docs.python.org/whatsnew/2.6.html#pep-3112-byte-literals

Python3 では、これはバイト配列を送信します。ただし、_get_post_data関数には文字列が必要です。python3 と python2 で文字列を処理する方法はまったく異なり、Python3 に移植したい人にとってはフラストレーションの元です。

このパッケージが Python3 との互換性を持たない限り、Python2 を使用する必要があります。もちろん、自分で行うこともできますが、使用する他のパッケージも python2 の使用に制限されることを考慮すると、その方法をお勧めします。

基本的に、python 2.6/2.7 では、

b = bytes('a')
print type(b)

タイプstrを取得します

Python 3 では、もしそうなら

b = bytes('a')
print(type(b))

タイプ「bytearray」を取得します

于 2012-04-06T17:20:44.537 に答える