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 从远程服务器下载日志文件的程序
Feb 10 Python
利用Python爬虫给孩子起个好名字
Feb 14 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
Python安装pycurl失败的解决方法
Oct 15 Python
在python 中实现运行多条shell命令
Jan 07 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
Python中的list与tuple集合区别解析
Oct 12 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
python excel多行合并的方法
Dec 09 Python
python Scrapy框架原理解析
Jan 04 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
详解vue-router基本使用
2017/04/18 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
python查找第k小元素代码分享
2013/12/18 Python
Python中的choice()方法使用详解
2015/05/15 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
Python中return函数返回值实例用法
2020/11/19 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
小学生读书感言
2014/02/12 职场文书
有创意的广告词
2014/03/18 职场文书
班主任新年寄语
2014/04/04 职场文书
班干部演讲稿
2014/04/24 职场文书
会议室标语
2014/06/21 职场文书
职工小家建设活动方案
2014/08/25 职场文书
关于召开会议的通知
2015/04/15 职场文书
婚育证明样本
2015/06/16 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
Python中常见的导入方式总结
2021/05/06 Python