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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
python比较两个列表大小的方法
Jul 11 Python
Python中类型检查的详细介绍
Feb 13 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
使用python编写监听端
Apr 12 Python
如何利用Boost.Python实现Python C/C++混合编程详解
Nov 08 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
Dec 03 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
Php部分常见问题总结
2006/10/09 PHP
php中的时间显示
2007/01/18 PHP
PHP 编程的 5个良好习惯
2009/02/20 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python实现弹跳小球
2019/05/13 Python
Python中私有属性的定义方式
2020/03/05 Python
python help函数实例用法
2020/12/06 Python
pandas针对excel处理的实现
2021/01/15 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
电子商务专员岗位职责
2013/12/11 职场文书
思想专业自荐信范文
2013/12/25 职场文书
项目副经理岗位职责
2013/12/30 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
建筑学专业自荐书
2014/07/09 职场文书
现役军人家属慰问信
2015/03/24 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python