python3处理json文件中含有中文dumps的应用
python3的编码问题一直比较简单
内存中字符串采用unicode
存储到文件中采用utf-8
以下为str,byte互相转换的过程:
str = "abc学习"strOut[6]: 'abc学习'mybyte = str.encode("utf-8")mybyteOut[8]: b'abc\xe5\xad\xa6\xe4\xb9\xa0'str2 = mybyte.decode("utf-8")str2Out[10]: 'abc学习'
最近在写json相关的文件存取,遇到这样的问题:
import jsonjson_str = """{"a": " 1", "f": "100\n", "b": "好好学习"}"""json_strOut[20]: '{"a": " 1", "f": "100\n", "b": "好好学习"}'json_str = json_str.encode('unicode_escape').decode('utf-8')json_strOut[22]: '{"a": " 1", "f": "100\\n", "b": "\\u597d\\u597d\\u5b66\\u4e60"}'json_data = json.loads(json_str, encoding="utf-8")json_dataOut[24]: {'a': ' 1', 'b': '好好学习', 'f': '100\n'}dumps_str = json.dumps(json_data, indent=4)dumps_strOut[26]: '{\n "f": "100\\n",\n "a": " 1",\n "b": "\\u597d\\u597d\\u5b66\\u4e60"\n}'json_data = json.loads(dumps_str)json_dataOut[28]: {'a': ' 1', 'b': '好好学习', 'f': '100\n'}
从上面的事例看出,通过string转成json后,再通过json.dumps转成字符串后,原先的好好学习变成了中文编码,存储到文件中也是中文编码,很不直观。
经过摸索,采用如下方法即可使得dumps转成中文(ensure_ascii=False)
dumps_str = json.dumps(json_data, ensure_ascii=False, indent=4)dumps_strOut[30]: '{\n "f": "100\\n",\n "a": " 1",\n "b": "好好学习"\n}'
python3处理json文件中含有中文dumps的应用的更多相关文章
- scrapy输出的json文件中显示中文
scrapy用-o filename.json 输出时,会默认使用unicode编码,当内容为中文时,输出的json文件不便于查看,如下图: 可以在setting.py文件中修改默认的输出编码方式,只 ...
- 路径或文件名中含有中文的jar文件双击启动不了 -> Java7的Bug?
至从安装了java7后,才发现部分可执行的jar文件双击都启动不了了. 比如所有的jar文件放在桌面上双击启动不了. 比如所有的文件名中含有中文的jar文件双击启动不了. 比如一个 abc.jar 放 ...
- 第三天,爬取伯乐在线文章代码,编写items.py,保存数据到本地json文件中
一. 爬取http://blog.jobbole.com/all-posts/中的所有文章 1. 编写jobbole.py简单代码 import scrapy from scrapy. ...
- Scrapy基础(十一)————导出数据到json文件中
之前介绍过将数据写入mysql数据库中,但是对于那些没有数据库的,可以通过写入json文件中或者是写入到csv或者xls:这里只介绍写入json文件中,也为再练习一下自定义的pipeline 思路: ...
- JS文件中的中文在网页上显示为乱码解决方法
转自:http://www.pc6.com/infoview/Article_63835.html 如果JS文件中的中文在网页上显示为乱码,不妨采用本文章中的方法来试一试,或许能解决使你很头疼的问题. ...
- ASP.NET Core 在 JSON 文件中配置依赖注入
前言 在上一篇文章中写了如何在MVC中配置全局路由前缀,今天给大家介绍一下如何在在 json 文件中配置依赖注入. 在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等 ...
- 解决Java getResource 路径中含有中文的情况
问题描述 当Java调用getResource方法,但是因为路径中含有中文时,得不到正确的路径 问题分析 编码转换问题 当我们使用ClassLoader的getResource方法获取路径时,获取到的 ...
- package.json文件中dependencies和devDependencies的区别
在工作和学习中,我经常会用的npm 下载各种包,有时就会遇到各种npm 的形式,现在就捋一捋 首先要先了解 package.json文件中dependencies和devDependencies的 ...
- Python3实现从文件中读取指定行的方法
from:http://www.jb51.net/article/66580.htm 这篇文章主要介绍了Python3实现从文件中读取指定行的方法,涉及Python中linecache模块操作文件的使 ...
随机推荐
- 定期批量修改远程服务器root密码
一.背景 很多时候运维或安全工作人员需要维护大量的服务器,其中就包括判断是否存在root弱口令, 如果服务器数量很多一一修改的话的确是要好花费不少时间精力的.如果通过脚本来实现密码更改, 再做一个定期 ...
- iOS应用管理(优化)
// // ViewController.m // 01-应用管理 // Created by apple on 17-5-14. // Copyright (c) 2017年 All ri ...
- sql随机查询数据order by newid()
方法1:最普通的写法,性能慢 ID,name FROM dt_keyword ORDER BY NEWID() 方法2:性能还可以 //先给数据库增加一列ALTER TABLE dt_keyword ...
- Linux操作系统入门学习总结(2015.10)
用了差不多45天的时间把Linux操作系统入门的资料学习了下.主要阅读了以下几本书: 鸟哥的私房菜:Linux基础学习篇(第三版) "Running Linux" <LINU ...
- FFmpeg Basics学习笔记(1)ffmpeg基础
1 FFmpeg的由来 FFmpeg缩写中,FF指的是Fast Forward,mpeg是 Moving Pictures Experts Group的缩写.官网:ffmpeg.org 编译好的可执行 ...
- FIDDLER的使用方法及技巧总结(连载五)FIDDLER的一些故障排除
五.FIDDLER的一些故障排除
- js生成二维码实例
<!DOCTYPE html><html><head> <title></title> <meta charset=&qu ...
- idea 开启 problems自动代码检查
勾上此处 会自动出现 疑问 可能需要装 problems view插件
- 从 shell 眼中看世界
(字符) 展开每一次你输入一个命令,然后按下 enter 键,在 bash 执行你的命令之前, bash 会对输入的字符完成几个步骤处理.我们已经知道两三个案例,怎样一个简单的字符序列,例如 “*”, ...
- WPF 自定义事件
1.可传参数 namespace DrugInfo { public class ChooseDrugRoutedEventArgs : RoutedEventArgs { public Choose ...