Python模块——json
简介
json全名是JavaScript Object Notation(即:Javascript对象标记)。它是JavaScript的子集,JSON是轻量级的文本数据交换格式。前端和后端进行数据交互,其实就是js和python进行数据交互,但json数据是不能被python识别的,故需要转码,即序列化和反序列化。而今天学习的模块json就是实现这一功能。在python中是自带这个模块的,故不需要自己另外安装。
json数据与python数据区别
json数据的名称必须用双引号来包括,这也是json数据的特点。下面是两幅两个数据的转化参照图。
参照上面两幅图可以发现,python的集合类型是不能参与转化到json的,且json数据也没有set类型。
json方法
首先我们用json的一个魔法方法all来查看json的方法有哪些?
import json
print (json.__all__)
['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder']
可以看到上面共有7个方法,下面讲解下其中四个最常用的方法。
- dumps:此方法是将python对象转换为json对象,实现序列化过程。下面是一个小小实例。
import json
data = {
'name' : 'wl',
'age' : 18,
'tu' : (1,2,3),
'li' : ['a','b','c'],
'kong' : None,
'shi' : True,
'dict' : {1:2,3:4}
}
json_data = json.dumps(data)
print(json_data)
{"shi": true, "age": 18, "tu": [1, 2, 3], "kong": null, "li": ["a", "b", "c"], "name": "wl", "dict": {"1": 2, "3": 4}}
- loads:此方法刚好与dumps方法相反,它实现的是序列化的反过程。
python_data = json.loads(json_data)
print(python_data)
print(type(python_data))
{'tu': [1, 2, 3], 'name': 'wl', 'li': ['a', 'b', 'c'], 'shi': True, 'dict': {'3': 4, '1': 2}, 'kong': None, 'age': 18}
<class 'dict'>
可以发现,python的列表和json的数组可以相互转换,但python的元组与json的数组并不是,元组只能转换成json的数组,而数组却转不回去,其只能转成python的列表。
- dump:与dumps不同的是,此方法是在文件里进行操作序列化的过程,故常常配合于with open语句。
with open('data.json','w+') as f:
json.dump(data,f)
f.seek(0)
print(f.read())
{"dict": {"1": 2, "3": 4}, "name": "wl", "tu": [1, 2, 3], "kong": null, "li": ["a", "b", "c"], "age": 18, "shi": true}
- load:load方法与dump相反,它实现在文件中的序列化反过程。
with open('data.json','r') as f:
print(json.load(f))
{'li': ['a', 'b', 'c'], 'name': 'wl', 'shi': True, 'tu': [1, 2, 3], 'dict': {'3': 4, '1': 2}, 'kong': None, 'age': 18}
Python模块——json的更多相关文章
- Python模块(json)
json json模块,用来处理json风格的数据 一.json的数据格式 json是javascripts的标准格式,json的格式是由若干个 键/值(key,values) 对的集合,该集合可以理 ...
- 潭州课堂25班:Ph201805201 python 模块json,os 第六课 (课堂笔记)
json 模块 import json data = { 'name':'aa', 'age':18, 'lis':[1,3,4], 'tupe':(4,5,6), 'None':None } j = ...
- python模块-json、pickle、shelve
json模块 用于文件处理时其他数据类型与js字符串之间转换.在将其他数据类型转换为js字符串时(dump方法),首先将前者内部所有的单引号变为双引号,再整体加上引号(单或双)转换为js字符串:再使用 ...
- python模块--json \ pickle \ shelve \ XML模块
一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...
- day19 python模块 json模块 pickle模块
day19 python 一.序列化模块 序列类型: 列表 字符串 元组 bytes 序列化: 特指字符串和bytes, 就是把其他的数据类型转化成序列的数据类型的过程 dic = ...
- python 模块-json
1.JSON(Javascript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Lan ...
- python 模块之-json
python 模块json import json x="[null,true,false,1]" print(json.loads(x)) #---------------- ...
- python模块(json和pickle模块)
json和pickle模块,两个都是用于序列化的模块 • json模块,用于字符串与python数据类型之间的转换 • pickle模块,用于python特有类型与python数据类型之间的转换 两个 ...
- python模块time&datetime&json & picle&14.logging等
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
随机推荐
- css布局 -双飞翼布局&圣杯布局
一,双飞翼布局 左右两边固定,中间可以随着浏览器放大和缩小 <!DOCTYPE html> <html lang="en"> <head> &l ...
- 使用UltraISO(软碟通)制作U盘制作启动盘完整教程
背景:服务器需要安装系统,但是没有启动盘只有镜像. 前提:U盘和安装镜像准备好 步骤一:首先我们先安装软碟通,完成安装后打开软碟通,文件->打开,打开我们需要制作的iso镜像.如下图(也可下本地 ...
- 热衷外卖的韩国与中国,外卖APP最大的区别有哪些?
额,一向"自大"的韩国人总是想处处争先.就连在外卖方面,韩国人也说自己的"外卖民族",对外卖有着一种"痴迷".事实上,早在20多年前韩国外卖 ...
- CNN核心概念理解
卷积神经网络 (Convolutional Neural Networks,简称CNN),是一种经典的神经网络算法.由于在图像识别领域取得的良好效果,随着人工智能的火热,它也受到越来越多的关注.CNN ...
- Python学习:安装配置pycharm编辑器
我只介绍windows的安装过程,因为mac的安装过程实在是过于简单了,一路继续就可以了. 1. windows安装过程 1.1 下载安装包,软件可以找我领取 ! 根据自己的操作系统进行下载,左侧 ...
- spring 官方文档-片段学习——webflux-ann-controller
spring 官方文档-片段学习总结 片段所在连接:https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-referenc ...
- 小明有5本新书,要借给A、B、C三位小朋友 若每人每次只能借一本,则可以有多少种不同的借法?
/* 问题描述: 小明有5本新书,要借给A.B.C三位小朋友, 若每人每次只能借一本,则可以有多少种不同的借法? 问题分析: 本题属于数学当中最常见的排列组合问题, 即求从5个数当中取3个不同数的排列 ...
- gentoo emby-server
最近想用 emby-server + kodi 打造家庭播放平台, 在 gentoo 上面先尝试安装配置 emby-server. 首先, 使用 megacoffee 这个 overlay, 这个上面 ...
- 201903-2 二十四点 Java
思路: 数据结构中,栈可以解决运算的问题.利用压栈和弹栈操作实现(这里用队列模拟).具体的: 遇到乘除号,弹出栈顶元素,将计算结果压入栈中.遇到加减号,将后面的数一起压入栈中. 注意: substri ...
- Pmw大控件(二)
Pmw大控件英文名Pmw Python megawidgets 官方参考文档:Pmw 1.3 Python megawidgets 一,如何使用Pmw大控件 下面以创建一个计数器(Counter)为例 ...