Python是怎样处理json模块的


Posted in Python onJuly 16, 2020

首先,了解下什么是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的都是和文件相关的。

Python是怎样处理json模块的

实例:

把字典转换成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模块的

Python类型转换JSON类型的对应关系

Python是怎样处理json模块的

json类型转换到Python的类型对照表

Python是怎样处理json模块的

以上就是Python是怎样处理json模块的的详细内容,更多关于Python处理json模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python判断字符串与大小写转换
Jun 08 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
python面向对象_详谈类的继承与方法的重载
Jun 07 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
Python实现的建造者模式示例
Aug 06 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
Python2手动安装更新pip过程实例解析
Jul 16 #Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 #Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 #Python
Python csv文件记录流程代码解析
Jul 16 #Python
Python 抓取数据存储到Redis中的操作
Jul 16 #Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 #Python
解决python对齐错误的方法
Jul 16 #Python
You might like
php下的权限算法的实现
2007/04/28 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
jQuery Ajax使用 全解析
2010/12/15 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
js判断是否是手机页面
2017/03/17 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
原生JS实现留言板
2020/03/26 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python语言描述随机梯度下降法
2018/01/04 Python
python生成九宫格图片
2018/11/19 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Python函数式编程实例详解
2020/01/17 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
经济国贸专业求职信
2014/06/18 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
清洁工个人总结
2015/03/04 职场文书
2015年教师节广播稿
2015/08/19 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL