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()

转载于:https://www.cnblogs.com/geektown/p/5144017.html

python json.dumps() 中文乱码问题相关推荐

  1. python json.dumps慢_python json.dumps中文乱码问题解决

    json.dumps(var,ensure_ascii=False)并不能解决中文乱码的问题 json.dumps在不同版本的Python下会有不同的表现, 注意下面提到的中文乱码问题在Python3 ...

  2. python json串中文乱码问题

    第一种: #!/usr/bin/env python # -*- coding: utf-8 -*- import json dic = {} abc="我爱你" bcd=&quo ...

  3. python json dumps 中文_Python下调用json.dumps中文显示问题解决办法

    在采集回来的网页内容要存储为TXT,因为数据结果是一个Dic的,所以将其换为Json. 但是转换的过程中汉字变为了ascii编码格式了!通过help("json") 看到里面有一个 ...

  4. python json loads 中文乱码_python实现智能语音天气预报

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 飞奔的帅帅 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  5. python json dumps 自定义_Python json.dumps 自定义序列化操作

    def login_ajax(request): if request.method == "GET": return render(request, 'login_ajax.ht ...

  6. python json.dumps()有中文时乱码

    python json.dumps()有中文时乱码 json.dumps() 把 Python 字典类型转换为 JSON 对象 import jsondata = {'a': 'adv. 如同,像-- ...

  7. python -m json.tool 中文乱码 Format JSON with python

    python -m json.tool 中文乱码 Format JSON with python 现在以 json 为数据传输格式的 RESTful 接口非常流行.为调试这样的接口,一个常用的办法是使 ...

  8. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)

    python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 参考文章: (1)python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) (2)https://www.cnblog ...

  9. freetds php mssql 中文乱码,PHP读取mssql json数据中文乱码的解决办法

    PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. ...

最新文章

  1. leetcode-最大子序和(动态规划讲解)
  2. 近似求PI(15 分)
  3. 传统公司部署OpenStack(t版)简易介绍(六)——neutron模块部署
  4. linux2.6内核Makefile详解
  5. soap rest_REST是新的SOAP
  6. Leetcode——1. Two Sum
  7. 带你掌握java反序列化漏洞及其检测
  8. php数组连起来,PHP 数组的拼接重组
  9. [高光谱] Hyperspectral-Classification Pytorch 的高光谱场景的通用类 HyperX
  10. git为私有仓库设置密码_Jenkins与Git最佳实践-1
  11. Nginx从入门到精通(全)
  12. 智能辅助系统在配电站所内的建设及应用
  13. 用python编程 商品打折怎么计算_折扣怎么算用计算公式
  14. 医学英文文献怎么找?
  15. 他 25 岁进贝尔实验室,32 岁创建信息论,40 岁办达特茅斯会议 | 人物志
  16. 解决Hadoop Browse Directory Couldn‘t upload the file 错误.无法上传文件
  17. c# winform 无边框窗体 移动办法
  18. 小米6无人直播详细教程+工具包
  19. 计算机专业给导师发个人简历,殷保群教授个人简历范文
  20. JavaScript获取页面高度

热门文章

  1. Android分贝开发
  2. windows删除文件c语言函数,c rename()函数是否删除文件?
  3. jqGrid获取数据库数据的方式
  4. JSP基于JDBC操作MSSQL2008数据库
  5. m40型工业机器人_从工业机器人编程及应用到数控机床的安装维修,一次都学习了...
  6. oracle——监听(三、监听配置)
  7. 在 vb.NET 中使用 COM+ 服务
  8. c#制作的简单的画图板
  9. html一行显示四个图片,css一行显示之:实现多个图片一行显示的方法
  10. cocos2d-x移植android,Cocos2d-x Xcode 移植到 Android stutio