Python中的json内置库详解

 更新时间:2023年08月23日 08:47:22   作者:史上最强踩坑王  
这篇文章主要介绍了Python中的json内置库详解,在学习做自动化测试的过程中,python 里有一个内置的 json 库,必须要学习好,json 是用于存储和交换数据的语法,是一种轻量级的数据交换式使用场景,需要的朋友可以参考下

一、json作用

json 是用于存储和交换数据的语法,是一种轻量级的数据交换式使用场景,主要用于以下场景

  • 接口数据的传输
  • 序列化
  • 配置文件(不是很适合,因为不能写注释,代码可读性较差一点)

二、json组成的结构

  • 键值对形式
  • 数组形式

- python 对象 与 json 数据类型对应,如下图

三、json库

  • 可以从字符串或文件中解析json
  • 该库解析json后将其转为python字典或者列表

- 常用的方法有以下,如下图

- 将 python 对象转化为 json 字符串的demo,使用 dumps 方法

import json
"""
将 python 对象转为 json 字符串
"""
# 定义 python 字典格式的对象,在python中一切皆为对象
data ={
    'a':1,
    'b':['1', 2],
    'c':True,
    'd':False,
    'e':None
}
# 将 python 对象转为 json 字符串
python_data = json.dumps(data)
# 打印变量 python_data
print(python_data)

 输出的结果如下,双引号、true、false 、null 这些都是 json 的数据格式

{"a": 1, "b": ["1", 2], "c": true, "d": false, "e": null}

- 将 json 字符串转化为 python 对象,使用的是 loads 方法,代码如下

"""
将 json字符串的格式转化成 python 对象
"""
# 定义一个 json 字符串
json_data = '{"a": 1, "b": ["1", 2], "c": true, "d": false, "e": null}'
# 将 json 字符串转化为 python 对象
python_data = json.loads(json_data)
# 打印变量 python_data
print(python_data)
# 打印变量的数据类型
print(type(python_data))

输出的结果如下,输出为 python 的字典数据格式,False、True、None 这些都是 python 的数据格式

{'a': 1, 'b': ['1', 2], 'c': True, 'd': False, 'e': None}
<class 'dict'>

- 将 python 对象转化为 json 格式数据并写入到 json 文件当中,使用的是 dump 方法,代码如下

"""
将 python 对象转化为 json 格式并写入到一个 json 文件当中
"""
data ={
    'a':1,
    'b':['1', 2],
    'c':True,
    'd':False,
    'e':None
}
# 将 python 对象转化为 json 格式并写入到一个 json 文件当中
with open('test.json',mode='w') as  f:
    json.dump(data,f)

生成的json文件如下图,是一个标准的 json 文件

- 将 json 文件读取出来,并转换为 python 对象,使用的是 load 方法,代码如下

# 读取 test.json 文件并赋值给变量 data
with open('test.json',mode='r') as  f:
    data = json.load(f)
    # 打印变量 data 
    print(data)
    # 打印 data 数据类型
    print(type(data))

输出的结果如下图,已经成功转换为 python  的字典数据格式了

由上面我们可以总结:

方法(dumps 、loads)和 方法(dump、load)之间区别,除了字面上一个加 s 一个没有加以外,我们需要写入到文件的时候就使用不加 s 的方法,例如:dump、load,如果只是想将 python 的数据格式 和 json 字符串之间进行数据转换,我们就需要使用加 s 的方法,例如:dumps、loads

四、dumps 常用参数

  • indent:根据数据格式缩进显示,默认为None,没有缩进
  • ensure_ascii:对中文使用ASCII编码,默认为True,如果设置为True的话,如果想要在 json 格式中展示为中文的话,最好将这个设置为 False

代码如下

"""
使用 json 里面的 dumps 方法,并添加 ensure_ascii,indent 这两个参数
"""
# 定义一个 python 对象
data ={
    'a':1,
    'b':'从此以后一别两宽',
    'c':True,
    'd':False,
    'e':None
}
# 将 python 对象转化为 json 字符串
json_data = json.dumps(data,ensure_ascii=False,indent=4)
# 打印变量 json_data
print(json_data)

输出的结果如下,能够将中文成功展示出来,并进行了缩进,更加美观

 如果将ensure_ascii 参数设定为 True ,结果如下:并不能成功展示中文

当然除了上面常用参数以外,还有很多,各位小伙伴可以下来自己练习

到此这篇关于Python中的json内置库详解的文章就介绍到这了,更多相关Python的json库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python学习之循环方法详解

    Python学习之循环方法详解

    循环是有着周而复始的运动或变化的规律;在 Python 中,循环的操作也叫做 遍历。与现实中一样,Python 中也同样存在着无限循环的方法与有限循环的方法。本文将通过示例详细讲解Python中的循环方法,需要的可以参考一下
    2022-03-03
  • Python保留小数的6种常用方法

    Python保留小数的6种常用方法

    日常写 Python 代码时,保留小数是高频需求,很多新手只会用round()函数,却不知道它有 坑,也不清楚不同场景该选哪种方法,今天就给大家整理 6 种 Python 保留小数的常用方法,从基础到进阶,代码示例可直接复制运行,需要的朋友可以参考下
    2026-03-03
  • 利用python如何在前程无忧高效投递简历

    利用python如何在前程无忧高效投递简历

    这篇文章主要给大家介绍了关于利用python如何在前程无忧高效投递简历的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Python中的JMESPath库示例详解

    Python中的JMESPath库示例详解

    这篇文章主要介绍了Python中的JMESPath库示例详解,JMESPath的基本思想是使用类似于XPath的路径表达式来指定要从JSON结构中提取哪些数据,它允许您以一致的方式导航和过滤JSON对象和数组,需要的朋友可以参考下
    2023-09-09
  • python SVM 线性分类模型的实现

    python SVM 线性分类模型的实现

    这篇文章主要介绍了python SVM 线性分类模型的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python定义一个Actor任务

    Python定义一个Actor任务

    这篇文章主要介绍了Python定义一个Actor任务,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Python使用线程池传递多个参数的几种方法

    Python使用线程池传递多个参数的几种方法

    本文介绍了在Python中使用线程池传递多个参数的四种方法,并推荐使用stmap方式,这种方法代码清晰易读,参数传递灵活,易于维护和扩展,适用于为每个设备指定不同参数的场景,需要的朋友可以参考下
    2026-04-04
  • 深入浅析python with语句简介

    深入浅析python with语句简介

    with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,这篇文章给大家介绍了python with语句简介,感兴趣的朋友一起看看吧
    2018-04-04
  • Python操作Excel数据分组的完整指南

    Python操作Excel数据分组的完整指南

    在日常数据处理工作中,Excel 数据分组是一项高频使用的功能,本文将系统介绍使用 Python代 码实现 Excel 数据分组的方法并提供完整代码示例,希望对大家有所帮助
    2026-05-05
  • 详解django使用include无法跳转的解决方法

    详解django使用include无法跳转的解决方法

    这篇文章主要介绍了详解django使用include无法跳转的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论