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双向链表实现实例代码
Nov 21 Python
Python异常处理总结
Aug 15 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
Python中max函数用于二维列表的实例
Apr 03 Python
Django读取Mysql数据并显示在前端的实例
May 27 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
python dataframe NaN处理方式
Dec 26 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
django2.2 和 PyMySQL版本兼容问题
Feb 17 Python
golang/python实现归并排序实例代码
Aug 30 Python
python中实现词云图的示例
Dec 19 Python
python 模块重载的五种方法
Apr 24 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
综合图片计数器
2006/10/09 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
自我评价范文分享
2014/01/04 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
雨花台导游词
2015/02/06 职场文书
医院合作意向书范本
2015/05/08 职场文书
法人代表资格证明书
2015/06/18 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript