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中的异常处理简明介绍
Apr 13 Python
Python计算三角函数之asin()方法的使用
May 15 Python
关于Django外键赋值问题详解
Aug 13 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
图解Python变量与赋值
Apr 03 Python
python框架中flask知识点总结
Aug 17 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
python绘图模块matplotlib示例详解
Jul 26 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 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
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
Javascript验证方法大全
2015/09/21 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
python提取字典key列表的方法
2015/07/11 Python
Python使用django搭建web开发环境
2017/06/09 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
Python读写docx文件的方法
2018/05/08 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
速比涛英国官网:Speedo英国
2019/07/15 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
环保建议书400字
2014/05/14 职场文书
运动会宣传口号
2014/06/09 职场文书
药店采购员岗位职责
2014/09/30 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书