0

hiee ima newbee in field of python 助けてください..

これは私が得ているエラーです

'ascii' コーデックは位置 0-4 の文字をエンコードできません: 序数が範囲外です (128)

ここに私のコードがあります

import json
import urllib
import difflib

def main():
    f1 = open('tweet-stream.json','r')    
    Outputfile =open('newdata6.ods', 'w')
    count = 0

    for line in f1:
        d = json.loads(line)
        lang =  d["user"]["lang"]
        status_count = d["user"]["statuses_count"]
        id1= d['user']['id']
        name=d['user']['location']
        print >>Outputfile,"Language: "+ ','+ lang +','+ "Status_Count" +','+str(status_count)+','+str(id1)+','+str(name)


if __name__ == "__main__":    
    main()
4

2 に答える 2

2

Python での Unicode のガイドはこちら: http://nedbatchelder.com/text/unipain.html

そのプレゼンテーションのガイドラインに従うと、問題が解決します。

于 2013-03-17T15:05:48.130 に答える
0

完全な答えではありませんが、置き換えてみてください

       print >>Outputfile,"Language: "+ ','+ lang +','+ "Status_Count" +','+str(status_count)+','+str(id1)+','+str(name)

    print >>Outputfile,"Language: "+ ','+ lang +','+ "Status_Count" +','+unicode(status_count)+','+unicode(id1)+','+unicode(name)

またはそれを行う:

print >>Outputfile, u"Language: ,%s,Status_Count,%s,%s,%s" % (lang, status_count, id1, name)

またはさらに良い:

text = u"Language: ,%(lang)s,Status_Count,%(count)s,%(id)s,%(name)s\n" % {
      "lang": lang,
      "count": status_count,
      "id": id1,
      "name": name
}

OutputFile.write(text)

また、エラーの行を教えていただけると助かります。私が知る限り、「str」関数を使用してデータを ascii に変換しようとすると、エラーが発生する可能性があります。ほとんどの場合、json は Unicode 文字列を返し、ASCII 以外のキーワードが含まれています。

また、変数には小文字を使用する必要があります。大文字はクラス名などです。の代わりにOutputfile、あなたは書くべきですoutput_file

于 2013-03-17T14:24:20.167 に答える