首页 > 代码库 > python json.dumps() 中文乱码问题
python json.dumps() 中文乱码问题
python 输出一串中文字符,在控制台上(控制台使用UTF-8编码)通过print 可以正常显示,但是写入到文件中之后,中文字符都输出成ascii编码了。英文字符能正常显示可读字符。
原因:json.dumps 序列化时默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:更深入分析,是应为dJSON
object 不是单纯的unicode实现,而是包含了混合的unicode编码以及已经用utf-8编码之后的字符串。
可行的方式如下:
1 import os 2 import os.path 3 import io 4 import sys 5 import json 6 7 contentByPage = {} 8 contentByPage[‘document‘] = shortName 9 contentByPage[‘content‘] = text 10 contentByPage[‘pageNumber‘] = pageNumber 11 jsonFile = io.open(shortName+"--"+str(pageNumber)+".json",‘w‘, encoding=‘utf8‘) 12 jsonFile.write(json.dumps(contentByPage, ensure_ascii=False).decode(‘utf8‘)) 13 jsonFile.flush() 14 jsonFile.close()
python json.dumps() 中文乱码问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。