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基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
python检测IP地址变化并触发事件
Dec 26 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
Jun 05 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
python requests证书问题解决
Sep 05 Python
python3.8下载及安装步骤详解
Jan 15 Python
关于Tensorflow 模型持久化详解
Feb 12 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
Python 必须了解的5种高级特征
Sep 10 Python
Python基于百度AI实现抓取表情包
Jun 27 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 str_pad 函数用法简介
2009/07/11 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
Vue路由跳转问题记录详解
2017/06/15 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
python实现矩阵乘法的方法
2015/06/28 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
Python操作MySQL数据库的方法
2018/06/20 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python笔记之代理模式
2019/11/20 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
keras K.function获取某层的输出操作
2020/06/29 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
绘画专业自荐信范文
2014/02/23 职场文书
七一党日活动总结
2014/07/08 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
张丽莉观后感
2015/06/16 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS