python之json操作
1.json.dumps()用于将dict类型的数据转成str
备注:文件路径前面加上 r 是为了避免转义
1 import json
2
3 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
4 string = json.dumps(dict)
5 print(dict)
6 print(string)
7 print(type(dict))
8 print(type(string))
9
10 with open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w')as f:
11 f.write(string)
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
3 <class 'dict'>
4 <class 'str'>
如果没有进行转换,则会报错:TypeError: write() argument must be str, not dict
1 import json
2
3 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
4 with open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w')as f:
5 f.write(dict)
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 Traceback (most recent call last):
3 <class 'dict'>
4 File "C:/Users/zy/Documents/GitHub/python3/searchTest/json_test.py", line 11, in <module>
5 f.write(dict)
6 TypeError: write() argument must be str, not dict
json.dumps()参数解释:常用参数解释
indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白
sort_keys:将数据根据keys的值进行排序
1 response = requests.post(url=url,headers=headers).json()
2 print(json.dumps(response,sort_keys=True,indent=4))
举例结果:
1 {
2 "code": "200",
3 "message": "",
4 "redirect": "",
5 "value": {
6 "name": "so",
7 "title": "360",
8 "value": "2"
9 }
10 }
2.json.loads():用于将str类型的数据转成dict
1 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 dumps = json.dumps(dict)
3 loads = json.loads(dumps)
4
5 print(dict)
6 print(dumps)
7 print(loads)
8
9 print(type(dict))
10 print(type(dumps))
11 print(type(loads))
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
3 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
4 <class 'dict'>
5 <class 'str'>
6 <class 'dict'>
3.json.dump()用于将dict类型的数据转成str,并写入到json文件中
1 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 json.dump(dict,open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w'))
4.json.load()用于从json文件中读取数据
1 filename = (r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json')
2 jsObj = json.load(open(filename))
3 print(jsObj)
4 print(type(jsObj))
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 <class 'dict'>
常见问题:
1. json.dumps方法默认会输出成这种格式"\u535a\u5ba2\u56ed"
要输出中文需要指定ensure_ascii参数为False,如下代码片段:
json.dumps({'text':"中文"},ensure_ascii=False,indent=2) # indent 进行缩进展示
python之json操作的更多相关文章
- python中json操作了解
什么是接口? 交换数据 http://openweathermap.org/current json简介 JSON 是存储和交换文本信息的语法.类似 XML JSON 语法是 JavaScript 语 ...
- 【2019.6.2】python:json操作、函数、集合、random()等
一.json操作: json就是一个字符串,从文件中读取json,必须是json格式.j'son串中必须是双引号,不能有单引号,单引号不能转换 1.1使用: import json #使用json先引 ...
- python中json操作
1.写操作.json文件dumps().dump()函数 d = { 'zll': { 'addr': '北京', 'age': 28 }, 'ljj': { 'addr': '北京', 'age': ...
- Python的json操作
对数据: json = json.dumps(data) 编码 dict->string 排序sort_keys=True, 缩进indent=4, 分隔符separators=(' ...
- Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数
python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
- python 历险记(四)— python 中常用的 json 操作
目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...
- Python中的json操作
Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
随机推荐
- linux安装软件时/usr/lib/python2.7/site-packages/urlgrabber/grabber.py文件异常
linux安装软件时,经常出现以下异常信息 Traceback (most recent call last): File , in <module> main() File , in m ...
- koa 项目实战(五)全球公用头像的使用
1.安装模块 npm install gravatar --save 2.使用 根目录/routes/api/users.js const gravatar = require('gravatar') ...
- java使用解压zip文件,文件名乱码解决方案
File outFileDir = new File(outDir);if (!outFileDir.exists()) { boolean isMakDir = outFileDir.mkdirs( ...
- linux 之 pthread_create 实现类的成员函数做参数
在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create ...
- C# 防火墙操作之开启与关闭
通过代码操作防火墙的方式有两种:一是代码操作修改注册表启用或关闭防火墙:二是直接操作防火墙对象来启用或关闭防火墙.不论哪一种方式,都需要使用管理员权限,所以操作前需要判断程序是否具有管理员权限. 1. ...
- 前端开发中的Error以及异常捕获
本文首发于公众号:符合预期的CoyPan 写在前面 在前端项目中,由于JavaScript本身是一个弱类型语言,加上浏览器环境的复杂性,网络问题等等,很容易发生错误.做好网页错误监控,不断优化代码,提 ...
- [SQL server2008筛选时报错,无法为该请求检索数据 解决方案]
当SQL数据太多时,我们需要通过筛选来查询自己需要的数据. 当我在使用SQLserver 2008的时候 遇到了这个错误1 以下是微软提供的解决方案的网址 (SQL SERVER SP1补丁) htt ...
- 查重复出现的字段 SQL
select * from a where (select count(b.abc) from b where b.abc=a.abc)>1 一般treeview datagridview 都要 ...
- javascript循环语句
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [spring]AOP(切面)编程
AOP 即 Aspect Oriented Program 面向切面编程 首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能. 所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务 ...