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读取word文档的方法
May 09 Python
python实现按行切分文本文件的方法
Apr 18 Python
Python3.6正式版新特性预览
Dec 15 Python
Python基于matplotlib实现绘制三维图形功能示例
Jan 18 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
python同步windows和linux文件
Aug 29 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
Jupyter安装链接aconda实现过程图解
Nov 02 Python
Python关于OS文件目录处理的实例分享
May 23 Python
Python list列表删除元素的4种方法
Nov 01 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安装memcached扩展笔记
2015/05/28 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
关于js datetime的那点事
2011/11/15 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
javascript中 try catch用法
2015/08/16 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
vue实现计算器功能
2020/02/22 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
详解python itertools功能
2020/02/07 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
python 调用Google翻译接口的方法
2020/12/09 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
日语专业推荐信
2013/11/12 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
软件售后服务承诺书
2014/05/21 职场文书
介绍信如何写
2015/01/31 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
2016元旦主持人开场白
2015/12/03 职场文书