当前位置: 首页 > news >正文

json字符串与python字典的区别与联系

json字符串与python中自带的字典类型外表长的很像,很容易区分不清楚,它们之间有着本质的区别,可以通过内置的json模块来互相转换。

文章目录

  • 1、Python字典
  • 2、JSON数据格式
  • 3、JSON与python字典的区别
  • 4、JSON与python字典相互转换
    • 4.1 json字符串与python字典之间使用json.dumps()和json.loads()
    • 4.2 json文件对象与python字典之间使用json.dump()和json.load()


1、Python字典

Python字典的key可以是任何不可变类型,如数值、字符串、元组(不含可变对象)。可变类型如list、dict、set不能作为key。关键在于对象是否有__hash__方法,因为字典的key是通过__hash__方法进行区分的。
如下面代码对字典的赋值:

dic = {'a': 11, 'b': '22', 'c': [33, '44'], 55: 66, 77.0: 88, True: 99, None: 100, ('d', 'e'): ('f', 'g')}
print("dic type: ", type(dic))
print(dic)

输出结果如下:
在这里插入图片描述


2、JSON数据格式

JSON(JavaScript Object Notation)数据格式是一种轻量级的数据交换格式,它采用了一种类似于JavaScript语法的结构,可以方便地在不同平台和编程语言之间进行数据交换。在Python中,通过使用内置的json模块来读取和写入JSON文件。我们可以使用json.dumps()函数将Python对象序列化为JSON字符串,使用json.loads()函数将JSON字符串反序列化为Python对象。

它们之间的转换关系如下:
在这里插入图片描述


3、JSON与python字典的区别

  1. python dict 字符串用单引号,json强制规定使用双引号。如下:
    在这里插入图片描述
  2. json会将python字典的value中的元组强制变成列表,包括嵌套的元组也会变成列表。同时json会将python字典的key中的数值强制变成字符串。如下:
    在这里插入图片描述
  3. json的key必须是字符串,而且强制是双引号包裹,python字典的key只要是可hash即可,所以元组也可以作为python字典的key,list不可以,而元组不可以作为json的key。如下图所示:
    在这里插入图片描述
  4. json是true,false,null,而python字典是True,False,None
    在这里插入图片描述
  5. python字典中key和value都可以出现中文,但json的中文会被转换成Unicode编码
    在这里插入图片描述

4、JSON与python字典相互转换

4.1 json字符串与python字典之间使用json.dumps()和json.loads()

在这里插入图片描述
上图中python字典的key中,55,77.0,True和None在序列化成json字符串的过程中被强制转换成了str格式;在json字符串反序列化回python字典时,恢复不到原来的类型了,只能转换成字符串。

4.2 json文件对象与python字典之间使用json.dump()和json.load()

python字典保存到json文件有两种方法:
法一:使用文件对象的write方法写json字符串到json文件中;
法二:使用json.dump方法写python字典到文件对象中
在这里插入图片描述
json.load()用于从json文件中读取数据到python字典。
在这里插入图片描述

相关文章:

json字符串与python字典的区别与联系

json字符串与python中自带的字典类型外表长的很像,很容易区分不清楚,它们之间有着本质的区别,可以通过内置的json模块来互相转换。 文章目录 1、Python字典2、JSON数据格式3、JSON与python字典的区别4、JSON与python字典相互转换4.1 json字符…...

数据结构-链表【chapter1】【c语言版】

目录 1 链表的优势: 2 链表的组成: 3.一般使用结构体的形式来实现链表: 4.单向链表实现(创建,遍历,释放): 4.1代码关键点备注: 5.查找节点: 5.1.按值查找节点 5.2.按位置查找节点 5.3 …...

OJ05:989. 数组形式的整数加法

目录 题目思路分析代码展示 题目 整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组。 例如,对于 num 1321 ,数组形式是 [1,3,2,1] 。 给定 num ,整数的 数组形式 ,和整数 k ,返回 整数 num k 的 数组形…...

山东布谷科技:关于直播源码|语音源码|一对一直播源码提交App Store的流程及重构建议

自从YY、六间房开启国内聊天室和秀场等网红盛行的网络红利时代以来,紧随其后国内各大音视频平台相应出现,先有映客花椒等直播平台的风头正劲,后有功能板块更丰富的头条抖音Tiktok等,盈利功能点不仅仅有直播PK连麦等礼物打赏功能&a…...

docker搭建guacamole,web远程桌面

Apache Guacamole 是一个客户端无插件的远程桌面网关。它支持标准协议,如 VNC、RDP 和 SSH。您可以使用任何现代 web 浏览器连接到您的桌面环境,而无需安装额外的软件。使用 Docker Compose 部署 Guacamole,如果没有docker-compose请先执行su…...

.baxia勒索病毒来袭:数据恢复与防护措施详解

导言 在当今这个信息化高速发展的时代,数据已成为企业和个人的核心资产,其价值不可估量。然而,随着网络技术的不断进步,网络安全威胁也日益严峻,其中勒索病毒作为一种新型的网络攻击手段,尤其是.baxia勒索…...

[UUCTF 2022 新生赛]ezpop 详细题解(字符串逃逸)

知识点: php反序列化字符串逃逸 php反序列化魔术方法 构造pop链 变量引用 其实这一题还是比较简单的,只要看懂代码,并且理解为什么要用反序列化字符串逃逸,下面会详细解释 题目源码: <?php //flag in flag.php error_reporting(0); class UUCTF{public $name,$key,$…...

【Zynq UltraScale+ RFSoC】DFE

DFE : digital front-end 数字前端 Xilinx Zynq RFSoC DFE 是一款突破性的灵活应变无线电平台&#xff0c;可强化数字前端 &#xff08;DFE&#xff09;&#xff0c;用于 5G 大规模无线电部署和广泛的其他射频应用。 Zynq RFSoC DFE 基于唯一经过生产验证的自适应单芯片无线电…...

Ubuntu学习笔记 - Day3

文章目录 学习目标&#xff1a;学习内容&#xff1a;学习笔记&#xff1a;vim简介vim键盘图工作模式 vim移动光标操作上下左右移动翻页 vim替换和删除操作替换删除 vim插入模式详解进入模式搜索 vim底行模式操作保存退出行号 学习目标&#xff1a; 一周掌握 Linux基本使用技巧 …...

scala list系列

dd list:有序的&#xff0c;链表 1.建立 不可变列表 2.通过下标来访问&#xff1a;下标从0开始 3.不能修改 4.添加 5.删除 6.合并 7.查找&#xff0c;判断元素是否存在 8.遍历...

TLS协议基本原理与Wireshark分析_wireshark分析tls协议

01****背 景 随着车联网的迅猛发展&#xff0c;汽车已经不再是传统的机械交通工具&#xff0c;而是智能化、互联化的移动终端。然而&#xff0c;随之而来的是对车辆通信安全的日益严峻的威胁。在车联网生态系统中&#xff0c;车辆通过无线网络与其他车辆、基础设施以及云端服务…...

【359】基于springboot的智慧草莓基地管理系统

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本智慧草莓基地管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…...

【智能算法应用】遗传算法求解车间布局优化问题

摘要 本文研究了基于遗传算法&#xff08;Genetic Algorithm, GA&#xff09;的车间布局优化方法。遗传算法是一种基于自然选择和遗传机制的优化算法&#xff0c;通过编码布局方案、交叉和变异操作生成新的布局个体&#xff0c;选择最优的车间布局方案。实验结果表明&#xff…...

java 中List 的使用

List集合是Collection接口的子接口&#xff0c;其下有两个实现类分别为ArrayList和 LinkedList List是一个接口&#xff0c;不能用new创建对象&#xff0c;需要用 ArrayList类 和 LinkedList类 来创建 特点 有序&#xff1a;存储元素的顺序和取出元素的顺序一致可以重复&…...

CSS学习之Grid网格布局基本概念、容器属性

网格布局 网格布局&#xff08;Grid&#xff09;是将网页划分成一个个网格单元&#xff0c;可任意组合不同的网格&#xff0c;轻松实现各种布局效果&#xff0c;也是目前CSS中最强大布局方案&#xff0c;比Flex更强大。 基本概念 容器和项目 当一个 HTML 元素将 display 属性…...

前后端交互接口(二)

前后端交互接口&#xff08;二&#xff09; 前言 在上一集我们约定了我们前后端交互接口的三条规则。这一集我们就先来看一看我们的一些proto文件。 浅看proto文件 在看文件之前&#xff0c;还是简单谈谈Protobuf Protobuf通过一个.proto文件定义数据结构&#xff0c;这个…...

HarmonyOs DevEco Studio小技巧28--部分鸿蒙生命周期详解

目录 前言 页面和自定义组件生命周期 页面生命周期 onPageShow --- 表示页面已经显示 onPageHide --- 表示页面已经隐藏 onBackPress --- 表示用户点击了返回键 组件生命周期 aboutToAppear --- 表示组件即将出现 onDidBuild --- 表示组件已经构建完成 aboutToDisap…...

STM32(hal库)的msp初始化HAL_TIM_Base_MspInit有什么用?为什么单独设置这个,而不是在timer_init()函数里直接初始化?

在STM32 HAL库中&#xff0c;HAL_TIM_Base_MspInit 函数是一个与定时器&#xff08;TIM&#xff09;相关的底层初始化函数&#xff0c;其名称中的 "Msp" 代表 MCU Service Package&#xff08;微控制器服务包&#xff09;&#xff0c;这是HAL库的一部分&#xff0c;用…...

三品PLM系统如何规范企业图纸文档资料电子化管理

三品PLM系统如何规范企业图纸文档资料电子化管理 图纸文档是企业设计、生产、管理的重要信息载体&#xff0c;是产品设计与生产维护的关键。传统纸质归档已无法满足现代需求&#xff0c;电子化管理成为提升效率和文档一致性的重要手段。然而&#xff0c;许多企业在实施电子化管…...

鸿蒙开发:arkts 如何读取json数据

为了支持ArkTS语言的开发&#xff0c;华为提供了完善的工具链&#xff0c;包括代码编辑器、编译器、调试器、测试工具等。开发者可以使用这些工具进行ArkTS应用的开发、调试和测试。同时&#xff0c;华为还提供了DevEco Studio这一一站式的开发平台&#xff0c;为运行在Harmony…...

OpenAvatarChat终极指南:5分钟打造你的专属AI数字人

OpenAvatarChat终极指南&#xff1a;5分钟打造你的专属AI数字人 【免费下载链接】OpenAvatarChat 项目地址: https://gitcode.com/gh_mirrors/op/OpenAvatarChat 想象一下&#xff0c;你正在开发一个智能客服系统&#xff0c;需要让数字人能够自然流畅地与用户对话。传…...

RNA-seq公司推荐

RNA-seq公司推荐 伯远生物是国内高通量测序综合性服务商&#xff0c;聚焦RNA-seq全场景服务&#xff0c;覆盖临床、科研、农业等领域&#xff0c;提供一站式测序与分析解决方案&#xff1b; 其临床转化与大样本服务市占率领先&#xff0c;依托自研平台实现高通量、成本可控&…...

汽车零部件三维扫描检测:精密制造新标杆,全链路质量管控升级

当下&#xff0c;汽车产业正加速向轻量化、电动化、集成化转型&#xff0c;零部件作为整车质量的核心基石&#xff0c;其制造精度与检测标准持续攀升。主机厂对零部件的形位公差、曲面轮廓度、装配匹配度要求日趋严苛&#xff0c;尤其在新能源汽车领域&#xff0c;薄壁件、复杂…...

Python量化投资利器:5步掌握pywencai获取同花顺问财数据

Python量化投资利器&#xff1a;5步掌握pywencai获取同花顺问财数据 【免费下载链接】pywencai 获取同花顺问财数据 项目地址: https://gitcode.com/gh_mirrors/py/pywencai 在金融数据分析和量化投资领域&#xff0c;获取高质量、实时的A股市场数据一直是开发者和分析师…...

企业内训系统集成AI问答时采用Taotoken的成本控制实践

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业内训系统集成AI问答时采用Taotoken的成本控制实践 应用场景类&#xff0c;设想一个企业开发内训知识库系统的场景&#xff0c;…...

自媒体矩阵工具选型避坑!多个平台发布指南,新手也能选对工具

做自媒体这事吧&#xff0c;光靠一个账号&#xff0c;很多时候确实不太容易把流量做起来&#xff0c;所以大多数人&#xff0c;慢慢就会去做多平台、多账号这种矩阵。可问题也很现实&#xff0c;账号一多&#xff0c;平台一散&#xff0c;人就容易被各种切换后台、重复发内容、…...

终极免费跨平台方案:draw.io桌面版完美编辑Visio文件

终极免费跨平台方案&#xff1a;draw.io桌面版完美编辑Visio文件 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 还在为不同操作系统间的Visio文件兼容性而烦恼吗&#xff1f;当…...

遥感影像分割选哪个?eCognition里8种方法(棋盘、多尺度、分水岭...)的实战避坑指南

遥感影像分割实战指南&#xff1a;eCognition八大算法深度解析与选型策略 1. 遥感影像分割的技术演进与核心挑战 在数字地球时代&#xff0c;高分辨率遥感影像已成为地理信息提取的重要数据源。与传统基于像素的分类方法相比&#xff0c;面向对象影像分析&#xff08;OBIA&am…...

GBase 8c存储过程调试接口使用指南

本文针对南大通用 GBase 8c 数据库&#xff0c;围绕存储过程的使用与问题定位&#xff0c;基于 DBE_PLDEBUGGER 调试接口&#xff0c;详细说明存储过程调试的核心接口、标准流程、常用命令与完整实战操作步骤&#xff0c;帮助用户快速掌握调试方法&#xff0c;高效定位与解决存…...

SSHFS-Win完整指南:如何在Windows上安全访问远程文件系统

SSHFS-Win完整指南&#xff1a;如何在Windows上安全访问远程文件系统 【免费下载链接】sshfs-win SSHFS For Windows 项目地址: https://gitcode.com/gh_mirrors/ss/sshfs-win 如果你需要在Windows系统中安全地访问远程Linux服务器的文件&#xff0c;SSHFS-Win正是你需要…...