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中unittest用法实例
Sep 25 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
Python OpenCV读取png图像转成jpg图像存储的方法
Oct 28 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
python将控制台输出保存至文件的方法
Jan 07 Python
Python----数据预处理代码实例
Mar 20 Python
python读写配置文件操作示例
Jul 03 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
flask开启多线程的具体方法
Aug 02 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 小乘法表实现代码
2009/07/16 PHP
PHP 简单日历实现代码
2009/10/28 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
如何在php中正确的使用json
2013/08/06 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
html下载本地
2006/06/19 Javascript
javascript编程起步(第四课)
2007/02/27 Javascript
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
JavaScript实现图片拖曳效果
2017/09/08 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python多进程并行代码实例
2019/09/30 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
餐厅经理岗位职责范本
2014/02/17 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
环卫工人慰问信
2015/02/15 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP