hiee我是蟒蛇游戏的新手,请帮助..
这是我得到的错误
'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()
答案 0 :(得分:2)
Python中的Unicode指南是: http://nedbatchelder.com/text/unipain.html
遵循该演示文稿中的指南将解决您的问题。
答案 1 :(得分: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