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正则表达式re模块详细介绍
May 29 Python
python调用短信猫控件实现发短信功能实例
Jul 04 Python
详解Django通用视图中的函数包装
Jul 21 Python
轻松实现python搭建微信公众平台
Feb 16 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
python操作链表的示例代码
Sep 27 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 Python
pandas提升计算效率的一些方法汇总
May 30 Python
如何理解及使用Python闭包
Jun 01 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
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
JavaScript错误处理
2015/02/03 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
Python编程求质数实例代码
2018/01/31 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
python实现淘宝秒杀脚本
2020/06/23 Python
总结python中pass的作用
2019/02/27 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
python中round函数保留两位小数的方法
2020/12/04 Python
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
关于工资低的辞职信
2014/01/14 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
2015年个人思想总结
2015/03/09 职场文书
教师求职信怎么写
2015/03/20 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
导游词之上饶龟峰
2019/10/25 职场文书