python json.dumps() 中文乱码问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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() 中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

求助!,python2处理utf-8编码的中文json.dumps后输出乱码问题,求大神帮忙解决下,谢谢!

python对打印出中文乱码问题的解决方案

Python学习---JSON补充内容[中文编码 + dumps解析]

json.dumps输出的中文乱码问题

python requests请求返回结果中文乱码处理

json.dumps()包装中文字符串