直接读json的话,里面的信息都会是unicode,于是找到了一个函数,可以帮忙解决转换的问题
(http://stackoverflow.com/questions/956867/how-to-get-string-objects-instead-of-unicode-ones-from-json-in-python)
但是,中文的显示还是不行,输出见下
def byteify(input):
if isinstance(input, dict):
return {byteify(key):byteify(value) for key,value in input.iteritems()}
elif isinstance(input, list):
return [byteify(element) for element in input]
elif isinstance(input, unicode):
return input.encode('utf-8')
else:
return input
import json
from pprint import pprint
with open('C:\Users\Administrator\Desktop\movie_list_2014_v2.json') as data_file:
data = json.load(data_file)
parsed_data = byteify(data)
pprint(parsed_data[1]['douban_info'])
输出(部分)
'countries': ['\xe7\xbe\x8e\xe5\x9b\xbd'],
'current_season': None,
'directors': [{'alt': 'http://movie.douban.com/celebrity/1302444/',
'avatars': {'large': 'http://img3.douban.com/img/celebrity/large/45953.jpg',
'medium': 'http://img3.douban.com/img/celebrity/medium/45953.jpg',
'small': 'http://img3.douban.com/img/celebrity/small/45953.jpg'},
'id': '1302444',
'name': '\xe5\x86\x88\xe6\x89\x8e\xe7\xbd\x97\xc2\xb7\xe6\xb4\x9b\xe4\xbd\xa9\xe5\x85\xb9-\xe5\x8a\xa0\xe5\x8b\x92\xe6\x9e\x9c'}],
'do_count': None,
'douban_site': '',
'episodes_count': None,
'genres': ['\xe6\x81\x90\xe6\x80\x96'],
想问一下,怎么让输出显示中文
我用的,是Python2.7+notebook
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.