python json模块_python json模块使用详情
#json。数据交换用到json文件。json是特殊的字符串。访问网站,返回的就是json
1、json简介:
定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
特点:简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
对象表示为键值对
数据由逗号分隔
花括号保存对象
方括号保存数组
序列化简单定义:变成json格式。定义:变成json格式。
反序列化简单定义: json格式变其它
2、注意点
注意点:
两种语言之间数据类型的差异,用json交换。
外层必须是字典或列表这两个容器类数据类型。
必须是双引号(因为java等其它语言有使用双引号表示字符串,单引号不表示字符串)
json是字符串
json中不存在元组。序列化元组之后元组变列表;不能是集合,序列化集合报错。序列化支持类型可以进Python官方文件介绍里面有介绍。
以后传值就是传一个也要用字典或列表
import json
tup=(1,2,3)
a=json.dumps(tup) #json中不存在元组。序列化元组之后元组变列表
print(a)
print(json.loads(a))--------------结果:
[1, 2, 3]
[1, 2, 3]
import json
mset={1,2,3} #不能是集合,序列化集合报错。
print(json.dumps(mset))-------------结果;
o.__class__.__name__)
TypeError: Object of type'set' is not JSON serializable
字典格式与json格式对比:
字典格式:
d ={'a': 123,'b': {'x': ['A', 'B', 'C']
}
}
json格式
{"a": 123,"b": { #必须是双引号(因为java等其它语言有使用双引号表示字符串,单引号不表示字符串)"x": ["A", "B", "C"]
}
}
可以看到, Dictionary和JSON非常接近, 而Python中的json库提供的主要功能, 也是两者之间的转换.
3、json使用(常用):
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。
在python中,有专门处理json格式的模块—— json 和 picle模块
Json 模块提供了四个方法: dumps、dump、loads、load
pickle 模块也提供了四个功能:dumps、dump、loads、load
序列化:将python的值转换为json格式的字符串。
反序列化:将json格式的字符串转换成python的数据类型
1)# 序列化,将python的值转换为json格式的字符串。序列化json.dumps() True变true了。序列化
import json
v= [12,3,4,{'k1':'v1'},True,'asdf']
v1=json.dumps(v)
print(v1,type(v1))--------------结果;
[12, 3, 4, {"k1": "v1"}, true, "asdf"]
2)反序列化json.load(),将json格式的字符串转换成python的数据类型
import json
v2= '["mcw",123]'print(type(v2))
v3=json.loads(v2)
print(v3,type(v3))-----------------结果;['mcw', 123]
如下验证:dumps可以格式化大部分的基本数据类型为字符串
1)字典序列化:
import json
dic={"name":"mcw","age":18}
xu=json.dumps(dic)
print(xu,type(xu),type(dic))--------------结果:
{"name": "mcw", "age": 18} )列表序列化与反序列化:
import json
li=[1,2]
xu=json.dumps(li)
print(xu,type(xu),type(li))
fx=json.loads(xu)
print(fx,type(fx))------------结果:
[1, 2] [1, 2]
3)字符串序列化与反序列化:
import json
mcwstr="xiaoma"xu=json.dumps(mcwstr)
print(xu,type(xu),type(mcwstr))
fx=json.loads(xu)
print(fx,type(fx))---------------结果;"xiaoma" xiaoma
4)整型序列化与反序列化
import json
mcwint=2xu=json.dumps(mcwint)
print(xu,type(xu),type(mcwint))
fx=json.loads(xu)
print(fx,type(fx))---------------结果:2
2
5)浮点型序列化与反序列化
import json
mcwfloat=2.03xu=json.dumps(mcwfloat)
print(xu,type(xu),type(mcwfloat))
fx=json.loads(xu)
print(fx,type(fx))--------------------结果:2.03
2.03
6)布尔型序列化与反序列化:
import json
mcwbool=True
xu=json.dumps(mcwbool)
print(xu,type(xu),type(mcwbool))
fx=json.loads(xu)
print(fx,type(fx))------------------结果:true True
7)None序列化与反序列化
import json
mcwnone=None
xu=json.dumps(mcwnone)
print(xu,type(xu),type(mcwnone))
fx=json.loads(xu)
print(fx,type(fx))---------------结果;null None
4、json序列化过程中的中文显示
import json
v= {'k1':'alex','k2':'魔降风云变'}
print(json.dumps(v))
val= json.dumps(v,ensure_ascii=False)
print(val)--------------------结果:
{"k1": "alex", "k2": "\u9b54\u964d\u98ce\u4e91\u53d8"}
{"k1": "alex", "k2": "魔降风云变"}
5、json.dump 和json.load(不常用)
序列化:
import json
v= {'k1':'yh','k2':'小马过河'}
f= open('xiaoma.txt',mode='w',encoding='utf-8') #文件不存在就会生成
val=json.dump(v,f)
print(val)
f.close()----------------结果:
None
#dump将内容序列化,并写入打开的文件中。
反序列化:
import json
f= open('xiaoma.txt',mode='r',encoding='utf-8')
data=json.load(f)
f.close()
print(data,type(data))
---------------结果:
{'k1': 'yh', 'k2': '小马过河'}
参考:
1)https://www.cnblogs.com/tjuyuan/p/6795860.html
2)http://www.runoob.com/python/python-json.html
3)https://www.jb51.net/article/139498.htm
python json模块_python json模块使用详情相关推荐
- python安装json模块_python 标准模块之json 模块
模块作用 json 通常用于在web 客户端和服务器数据交换,即把字符串类型转换成python 基本数据类型 ,或者将python 基本数据类型转换成字符串类型 常用的方法 json.dumps(ob ...
- python中json模块_Python json模块与jsonpath模块区别详解
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场景,比如网站前台与后 ...
- python pp模块_python常用模块
1.re模块 re模块用于对python的正则表达式的操作 1.1 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物 ...
- python shelve模块_python常用模块之shelve模块
python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...
- 如何显示python的内置模块_python之模块(内置模块)
内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 一.sys 用于提供对Python解释器相关的操作: 1 sys.argv #命令行参数List,第一个元素是程 ...
- python中的模块_python的模块和包的详细说明
Python模块和包的详细说明 模块的导入 模块的加载与修改 模块和脚本的说明 模块搜索路径 包的导入 一.模块的导入 之前我们简单的使用了一下模块,并没有详细的介绍,现在我们来详细的说说 1.什么是 ...
- python json库函数_Python JSON
使用python语言来编码和解码json对象 json(JavaScript Object Notation)是一种请量级的数据交换格式. 使用json函数需要导入json库:import json ...
- python有哪几种模块_python常用模块有哪些?
本文和大家分享的主要是python中常用几大模块相关内容,一起来看看吧,希望对大家学习python有所帮助. 一.时间模块(time) 在学习模块之前我们所接触的时间模块 import time ti ...
- python json安装_Python JSON - Python 基础教程 - 自强学堂
Python JSON 本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象. Python 2.7 自带 JSON 模块[官方文档] 1. 从python原始类型向json ...
- python dcf估值_Python 常用模块
本节内容 模块介绍 os 模块 sys 模块 time & datetime模块 random 模块 json & picle shutil 模块 shelve 模块 xml 模块 c ...
最新文章
- flask中的request
- python教程实例-python教程实例
- LuoGU 线性DP
- linux使用freetds 连接连远程服务器sqlservser2012
- CUMCM:05B DVD在线租赁
- python简单算法题_python几道简单的算法题
- synchronized的用法
- Android硬件抽象层(HAL)概要介绍和学习计划
- excel表格不够怎么添加_Excel表格水印,你以前好象添加错了!
- 在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法...
- 入门J2cache及源码解析
- 计算机可移动磁盘无法显示图片,电脑显示可移动磁盘但打不开
- 用 Python 构建实时股票警报消息系统机器人
- python自动化运维之路~DAY2
- SQL 编写能力提升-01 基础强化(Mysql)
- Unity 镜像sprite
- WIN10打印机显示服务器脱机,win10网络打印机显示脱机处理方法
- Windows PC上创建大数据职业技能竞赛实验环境之一--基本环境的搭建
- windows查看tomcat版本信息
- docker开放的端口_docker容器怎么开端口
热门文章
- kakfa安装与简单使用
- 论文-OpenDialKG: Explainable Conversational Reasoning with Attention-based Walks over Knowledge Grap
- LTE 中的ANR以及TNL介绍
- 光计算机pdf,神威bull;太湖之光计算机系统.PDF
- iOS 手动实现KVO / iOS KVO底层原理
- Python基础知识-字典dictionary
- ODL中的Karaf命令使用
- java中ArrayList小案例(快敲20遍++)
- (DDIA)SQL与NoSQL数据模型简介
- keystone创建服务实体HTTP500,An unexpected error prevented the server from fulfilling your request. HTTP500