【Python】json 格式转换 ① ( json 模块使用 | 列表转 json | json 转列表 | 字典转 json | json 转字典 )

2023-07-18 21:15:00


json 格式 字符串 与 Python 中的 字典 dict 和 列表 list 变量 可以无缝转换 ;

  • 调用 json.dumps 函数 可以将 Python 列表 / 字典 转为 json ;
  • 调用 json.loads 函数 ,可以将 json 转为 python 列表 / 字典 ;




一、json 格式转换




1、json 模块使用


首先 , 导入 Python 内置的 json 模块 ;

import json

然后 , 准备 python 数据 , 将数据放到 list 列表中 , 列表中的元素是 dict 字典 ;

data = [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]

再后 , 调用 json.dumps 函数 , 将 列表 数据转为 json 字符串数据 ;

json_str = json.dumps(data)

最后 , 调用 json.loads 函数 , 将 json 转为 python 数据 ;

data = json.loads(json_str)

2、代码示例分析 - 列表转 json


定义一个 Python 列表 , 列表中的元素是 dict 字典 ;

data_list = [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]

打印上述列表的类型为 <class 'list'> ;

调用 json.dumps 函数 , 将上述 data_list 列表变量 转为 json 字符串 , 转换后的 json_str 变量 类型为 <class 'str'> 类型 , 值为 :

[{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]

调用 json.loads 函数 , 将 json_str 变量 , 也就是 json 字符串 , 转为 Python 列表变量 , 转换后的 data_list2 变量 类型为 <class 'list'> , 变量值为 :

[{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 12}]

代码示例 :

"""
json 格式转换 代码示例
"""

import json

# I. 列表 转 json

# 定义 Python 列表 , 列表中元素为 dict 字段
data_list = [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]
print(f"data_list 类型 : {type(data_list)} 值为 {data_list}")

# 将列表转为 json
json_str = json.dumps(data_list)
# 打印 json 字符串结果
print(f"json_str 类型 : {type(json_str)} 值为 {json_str}")

# 将 json 转为 Python 列表数据
data_list2 = json.loads(json_str)
print(f"data_list2 类型 : {type(data_list2)} 值为 {data_list2}")


执行结果 :

D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
data_list 类型 : <class 'list'> 值为 [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 12}]
json_str 类型 : <class 'str'> 值为 [{"name": "Tom", "age": 18}, {"name": "Jerry", "age": 12}]
data_list2 类型 : <class 'list'> 值为 [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 12}]

Process finished with exit code 0

在这里插入图片描述


3、代码示例分析 - 字典转 json


定义一个 Python 字典 , 字典中的键值对元素类型都是 str 字符串类型 ;

data_dict = {"name": "Trump", "age": "80"}

打印上述 data_dict 变量 的类型为 <class 'dict'> ;

调用 json.dumps 函数 , 将上述 data_dict 字典变量 转为 json 字符串 , 转换后的 json_str 变量 类型为 <class 'str'> 类型 , 值为 :

{"name": "Trump", "age": "80"}

调用 json.loads 函数 , 将 json_str 变量 , 也就是 json 字符串 , 转为 Python 字典变量 , 转换后的 data_dict2 变量 类型为 <class 'dict'> , 变量值为 :

{'name': 'Trump', 'age': '80'}

代码示例 :

"""
json 格式转换 代码示例
"""

import json

# II. 字典 转 json

data_dict = {"name": "Trump", "age": "80"}
print(f"data_dict 类型 : {type(data_dict)} 值为 {data_dict}")

# 将字典转为 json
json_str = json.dumps(data_dict)
# 打印 json 字符串结果
print(f"json_str 类型 : {type(json_str)} 值为 {json_str}")

# 将 json 转为 Python 字段数据
data_dict2 = json.loads(json_str)
print(f"data_dict2 类型 : {type(data_dict2)} 值为 {data_dict2}")

执行结果 :

D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
data_dict 类型 : <class 'dict'> 值为 {'name': 'Trump', 'age': '80'}
json_str 类型 : <class 'str'> 值为 {"name": "Trump", "age": "80"}
data_dict2 类型 : <class 'dict'> 值为 {'name': 'Trump', 'age': '80'}

Process finished with exit code 0

在这里插入图片描述

更多推荐

设计模式:享元模式

目录组件代码实现源码中使用总结享元模式(FlyweightPattern)是一种结构型设计模式,它旨在通过共享对象来最大程度地减少内存使用和提高性能。享元模式通过共享细粒度的对象,以有效地支持大量细粒度的对象实例。在享元模式中,对象分为两种类型:内部状态(IntrinsicState)和外部状态(ExtrinsicSt

ArmSoM-W3之RK3588 Debian11详解

1.简介RK3588从入门到精通Debian是⼀种完全⾃由开放并⼴泛⽤于各种设备的Linux操作系统。Rockchip在官⽅Debian发⾏版的基础上构建和适配了相关硬件功能2.环境介绍硬件环境:ArmSoM-W3RK3588开发板软件版本:OS:ArmSoM-W3Debian113.Debian目录结构debian├

Ae 效果:CC Mr. Mercury

模拟/CCMr.MercurySimulation/CCMr.MercuryCCMr.Mercury(CC水银先生)主要用于创建类似水银等液态金属或油漆等的动态效果。CCMr.Mercury本质上模拟一个发射水银粒子的椭圆形发生器,基于源图像的像素创建自带动画的效果,范围限制在图层大小范围内。◆◆◆效果属性说明Radi

Git学习笔记9

Gitlab中的代码是要部署到生产服务器上。CI:Continuousintegration简称CI:是一种软件开发实践,即开发团队成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成中的错误。构建:对代

怎样才能让百度搜索到自己的博客?--九五小庞

怎么把自己的博客推荐到百度、Google等主要搜索引擎?如果不把你的博客提交到各大搜索引擎中,它们一般是不会收录你的博客的,你可以先尝试一下看看能不能在百度搜到你的博客吧。如果搜不到的话说明你的博客还没有被百度收录,那么怎么才能被百度、google等各大搜索引擎收录你的博客呢?申请免费加入搜索引擎啦!一般百度在48小时

Vue的详细教程--基础语法【上】

🥳🥳WelcomeHuihui'sCodeWorld!!🥳🥳接下来看看由辉辉所写的关于Vue的相关操作吧目录🥳🥳WelcomeHuihui'sCodeWorld!!🥳🥳一.插值1.文本2.html3.属性&class绑定&style绑定4.表达式二.指令1.v-if&v-else&v-else-if2.

mySQL 安装

一、windows安装包下载mysql官网提供了两种安装方式,一个是zip安装,另一个是msi安装,这里简绍第一种安装方式,第二种简单,不再简绍官网下载,根据自己需要选择版本:MySQL::MySQLCommunityDownloads这里我选择的是5.7版本二、安装文件1.解压到非中文、非特殊字符路径下2.将bin目

【支持M1】MacDroid for Mac:Mac和Android安卓设备数据互通

Mac和Android组合始终存在的唯一问题是无法在这些设备之间足够快地传输数据,但是MacDroidformac填补了这一空白。MacDroidmac版是Macos上一款安卓手机数据传输助手,MacDroidmac下载支持Mac和Android设备之间传输照片,视频,音乐和文件夹。不需要特殊的电缆或复杂的解决方案,只

【QT开发(5)】0919-QT里面新增ui类,新增使用opencv读取图片的普通类,在ui类中显示图片

参考资料1、QtCreator快速入门_第三版__霍亚飞编著2、《Qt+OpenCV显示图片(Mat转QImage然后显示在QLabel上)》输出材料https://gitee.com/hiyanyx/qt5.14-cpp_-empty_-project/tree/508435b09ff1f794e650cba859b

关于 firefox 不能访问 http 的解决

情景:我在虚拟机192.168.x.111上配置了DNS服务器,在kali上设置192.168.x.111为DNS服务器后,使用firefox地址栏搜索域名www.xxx.com,访问在192.168.x.111搭建的网站,本来经192.168.x.111DNS服务器解析后,应该访问的是http://www.xxx.c

数据在内存中的存储

文章目录一、整数在内存中的存储二、大小端引言大小端的介绍三、浮点数在内存中的存储储存规则取的过程一、整数在内存中的存储计算机中有3中二进制存储方法,即原码、补码、反码正整数的原码、反码、补码都相同负整数原码、反码、补码各不相同:原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。反码:将原码的符号位不变,其他位

热文推荐