Python处理json总结
首先,了解下什么是JSON?
JSON:JavaScript Object Notation 【JavaScript 对象表示法】
JSON 是一种轻量级的数据交换格式,完全独立于任何程序语言的文本格式。一般,后台应用程序将响应数据封装成JSON格式返回。
JSON的基本语法如下: JSON名称/值对。JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),然后着是一个冒号(:),最后是值。
JSON最常用的格式是对象的键值对: key只能是string, value可以是 object、array、string、number、true/false、null
{
"sites": [
{ "name":"360" , "url":"www.360.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"baidu" , "url":"www.baidu.com" }
]
}
- 键通过双引号包裹,后面跟冒号“:”,然后跟该键的值;
- 值可以是字符串、数字、数组等数据类型;
- 对象与对象之间用逗号隔开;
- “{}”用来保存对象;
- “[]”用来保存数组;
json跟python中的字典看起来很像,两者之间的区别?
1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串、数字、元组等;
2)字典是一种数据结构,json是一种数据格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性;
3)json的字符串强制用双引号,dict的字符串可以用单引号、双引号;
一般而言,我们会把json转化为python中的字典或者列表,再对其进行操作。
Python处理json的模块:json
Pythone3的标准库JSON模块,可以很方便的帮我们进行json数据的转换和处理,这里主要指序列化(json.dumps()、json.dump())和反序列化(json.loads()、json.load())。
序列化和反序列化:
将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式(如:XML、JSON或特定格式的字节串)的过程称为序列化;反之,则称为反序列化。
常用的JSON模块方法:
- json.dumps():将Python中的对象转换为JSON中的字符串对象
- json.dump():将python对象转换成JSON字符串输出到fp流中。
- json.loads():将JSON中的字符串对象转换为Python中的对象
- json.load():读取包含json对象的文件。
带s的都是和字符串相关的,不带s的都是和文件相关的。
实例:
把字典转换成json串
import json
dic = {'name': 'xiaoming', 'age': 29}
json_str = json.dumps(dic)#返回json字符串
print(json_str)
print(type(json_str))
输出:
{"name": "xiaoming", "age": 29}
<class 'str'>
Python解码JSON对象
import json
json_str ='{"id":"09", "name": "Nitin", "department":"Finance"}'
# Convert string to Python dict
dict = json.loads(json_str)
print(dict)
#转换成字典来后,要访问其中的值,可以使用字典的key来访问
print(dict['id'])
输出:
{'id': '09', 'name': 'Nitin', 'department': 'Finance'}
09
读取json文件
import json
with open('test1.json') as f:
a = json.load(f)
print(a)
print(type(a))
输出:
{'sites': [{'name': '360', 'url': 'www.360.com'}, {'name': 'google', 'url': 'www.google.com'}, {'name': 'baidu', 'url': 'www.baidu.com'}]}
<class 'dict'>
写入json文件
import json
dic ={
"name" : "xiaoming",
"age" : 20,
"phonenumber" : "15555555555"
}
with open("test2.json", "w") as outfile:
json.dump(dic, outfile)
文件test.json {"name": "xiaoming", "age": 20, "phonenumber": "15555555555"}
Python类型转换JSON类型的对应关系
json类型转换到Python的类型对照表
- 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 数组属性和方法
- VSCode 中文乱码
- Python获取时间戳
- VScode Python no module的解决方法
- MacOS安装npm全局包的权限问题
- [已解决]报错run `npm audit fix` to fix them, or `npm audit` for details
- Hexo使用攻略-添加分类及标签
- print的简单使用
- 使用Pandas读取大型Excel文件
- 微信小程序获取页面高度
- vue简单实现九宫格抽奖
- [已解决]报错:xlrd.compdoc.CompDocError: Workbook: size exceeds expected 17920 bytes; corrupt?
- [已解决]报错:have mixed types. Specify dtype option on import or set low_memory=False
- Mysql删除表数据,表文件大小不变
- 抓取模板
- 利用os和pandas来合并当前目录下所有excel文件