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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
通过cmd进入python的实例操作
Jun 26 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
python 遍历pd.Series的index和value
Nov 26 Python
tensorflow实现对张量数据的切片操作方式
Jan 19 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
使用Python封装excel操作指南
Jan 29 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 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
Cannot modify header information错误解决方法
2008/10/08 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
zf框架的校验器InArray使用示例
2014/03/13 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
Javascript Math对象
2009/08/13 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
简单解析Django框架中的表单验证
2015/07/17 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
运动会广播稿200米
2014/01/27 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
民族学专业求职信
2014/07/28 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
2016年情人节问候语
2015/11/11 职场文书
golang连接MySQl使用sqlx库
2022/04/14 Golang