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学习笔记之常用函数及说明
May 23 Python
2款Python内存检测工具介绍和使用方法
Jun 01 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
Python处理CSV与List的转换方法
Apr 19 Python
Python实现App自动签到领取积分功能
Sep 29 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
如何更换python默认编辑器的背景色
Aug 10 Python
python 写一个文件分发小程序
Dec 05 Python
python获取天气接口给指定微信好友发天气预报
Dec 28 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 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 HandlerSocket的使用
2011/05/02 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
php DES加密算法实例分析
2019/09/18 PHP
javascript数组的扩展实现代码集合
2008/06/01 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
对javascript继承的理解
2016/10/11 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
python解析json实例方法
2013/11/19 Python
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
电气自动化大学生求职信
2013/10/16 职场文书
商场消防安全责任书
2014/07/29 职场文书
总经理检讨书
2014/09/15 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
行政二审代理词
2015/05/25 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
德劲DE1105机评
2022/04/05 无线电