1

Twitterデータを解析しようとしていました。データを取得し、「twitterdata」という名前のファイルに保存しました

f = open('twitterdata','r')
for line in f:
    jsonline = json.loads(line)
    for key in jsonline:
        print str(jsonline[key]).encode('utf-8')

encode('utf-8')を使用した後でもエラーが発生します:

print str(jsonline[key]).encode('utf-8')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-17: ordinal not in     range(128)
4

1 に答える 1

4

を削除するstr()か、次のように変更しunicode()ます。

print jsonline[key].encode('utf-8')

また

print unicode(jsonline[key]).encode('utf-8')

Python 2.x では、str()その内容を 8 ビット文字列に変換しようとします。Unicode オブジェクトを渡しているため、デフォルトのエンコーディング ( ) を使用し、呼び出しに到達asciiする前に失敗します。.encode('utf-8')取得しているデータがすべてテキストの場合、ここで使用するunicode()のは冗長ですが、一部が整数の場合は便利なので、後者をお勧めします。

于 2013-06-29T17:06:24.187 に答える