python json操作
时间:2019-09-17
本文章向大家介绍python json操作,主要包括python json操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。
json是我们在制作爬虫时非常常见的网络对象,本文就列举python对于json的基本操作。
json函数
使用json函数首先要导入 json 库 即 import json
主要使用以下两个函数:
- json.dumps 将 Python 对象编码成 JSON 字符串
- json.loads 将已编码的 JSON 字符串解码为 Python 对象
json.dumps
json.dumps 用于将 Python 对象编码成 JSON 字符串。
语法:
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8",
default=None, sort_keys=False, **kw)
实例:
import json data = [{'A':1,'B':2,'C':3}] datajson=json.dumps(data) print(datajson)
输出:
[{"A": 1, "B": 2, "C": 3}]
常用参数详解
1)skipkeys参数,在编码成json过程中,dict对象的key只可以是string对象,如果是其他类型,那么在编码过程中就会抛出ValueError的异常。skipkeys可以跳过那些非string对象的处理,只处理正确的编码。
2)输出真正的中文需要指定ensure_ascii=False,默认配置使用的ascii编码,所以默认只会输出ASCII字符。
3)indent参数根据数据格式缩进显示,读起来更加清晰, indent的值,代表缩进空格式
import json data = [{'A':1,'B':2,'C':3}] datajson=json.dumps(data) print(datajson) datajson2=json.dumps(data,indent=4) print(datajson2)
输出:
[{"A": 1, "B": 2, "C": 3}] [ { "A": 1, "B": 2, "C": 3 } ]
4)separators参数的作用是去掉‘,’ ‘:’后面的空格,在传输数据的过程中,越精简越好,冗余的东西全部去掉。
import json data = [{'A':1,'B':2,'C':3}] datajson=json.dumps(data) print(datajson) datajson2=json.dumps(data,separators=(',',':')) print(datajson2)
输出:
[{"A": 1, "B": 2, "C": 3}] [{"A":1,"B":2,"C":3}]
5)sort_keys是告诉编码器按照字典key排序(a到z)输出。
import json data = [{'A':1,'D':2,'C':3}] datajson=json.dumps(data) print(datajson) datajson2=json.dumps(data,sort_keys=True) print(datajson2)
输出:
[{"A": 1, "D": 2, "C": 3}] [{"A": 1, "C": 3, "D": 2}]
python 原始类型向 json 类型的转化对照表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
json.loads
json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。
import json jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}' print(json.loads(jsonData))
输出:
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
以下代码表示存储json文件以及读取json文件
import json data = [{'A':1,'D':2,'C':3},{'a':1,'b':2,'c':3}] with open('test.json','w') as jsfile: jsfile.write(json.dumps(data)) with open('test.json','r') as jsfile: print(json.loads(jsfile.read()))
json 类型转换到 python 的类型对照表:
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int, long |
number (real) | float |
true | True |
false | False |
null | None |
原文地址:https://www.cnblogs.com/CYHISTW/p/11532072.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Logrotate实现Catalina.out日志每俩小时切割示例
- Linux常见问题解决方案汇总
- Linux中文件/文件夹无法删除的解决方案
- GNU Parallel的具体使用
- crontab定时任务不执行的原因分析与解决方法
- 在Linux中安装ASPNET.Core3.0运行时的示例代码
- linux Bash脚本判别使用者的身份方法示例
- 配置Linux使用LDAP用户认证的方法
- linux Dig命令使用大全
- Ubuntu虚拟机下使用cutecom进行串口通信的方法
- 虚拟机Linux系统忘记密码修改root或其他用户密码的方法
- 在 RHEL8 /CentOS8 上建立多节点 Elastic stack 集群的方法
- linux 搭建svn服务器的方法步骤
- linux 下隐藏进程的一种方法及遇到的坑
- Ubuntu 18.04中截图工具shutter的编辑按钮不可用的解决办法