我试图解析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')
即使在使用编码('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)
答案 0 :(得分: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()
是多余的,但如果其中一些是整数,则会很有用,所以我建议使用后者。