详解python中的json和字典dict


Posted in Python onJune 22, 2018

定义

python中,json和dict非常类似,都是key-value的形式,而且json、dict也可以非常方便的通过dumps、loads互转。既然都是key-value格式,为啥还需要进行格式转换?

json(JavaScript Object Notation)

json:是一种数据格式,是纯字符串。可以被解析成Python的dict或者其他形式。

dict:是一个完整的数据结构,是对Hash Table这一数据结构的一种实现,是一套从存储到提取都封装好了的方案。它使用内置的哈希函数来规划key对应value的存储位置,从而获得O(1)的数据读取速度。

json和dict对比

  • json的key只能是字符串,python的dict可以是任何可hash对象(hashtable type);
  • json的key可以是有序、重复的;dict的key不可以重复。
  • json的value只能是字符串、浮点数、布尔值或者null,或者它们构成的数组或者对象。
  • json任意key存在默认值undefined,dict默认没有默认值;
  • json访问方式可以是[],也可以是.,遍历方式分in、of;dict的value仅可以下标访问。
  • json的字符串强制双引号,dict字符串可以单引号、双引号;
  • dict可以嵌套tuple,json里只有数组。
  • json:true、false、null
  • python:True、False、None
  • json中文必须是unicode编码,如"\u6211".
  • json的类型是字符串,字典的类型是字典。

hashtable

一个对象当其声明周期内的hash值不发生改变,而且可以跟其他对象进行比较时,这个对象就是hashtable的。

1、python中的基本类型都是Hashtable,如str、bytes、数字类型、tuple等; 
2、用户自定义的类型默认都是hashtable,因为它们的hash值就是id()值; 
3、frozenset始终都是hashtable的,因为它们所有的项目都是被定义成hashtable的; 
4、只有当tuple内的所有项都是hashtable的时候,tuple才是hashtable;

总结

以上所述是小编给大家介绍的on中的json和字典dict,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python解析nginx日志文件
May 11 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
python套接字流重定向实例汇总
Mar 03 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
你应该知道的python列表去重方法
Jan 17 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
python实现雨滴下落到地面效果
Jun 21 #Python
使用python读取csv文件快速插入数据库的实例
Jun 21 #Python
详解python3中tkinter知识点
Jun 21 #Python
Python3用tkinter和PIL实现看图工具
Jun 21 #Python
Python3.4 tkinter,PIL图片转换
Jun 21 #Python
Python3实现转换Image图片格式
Jun 21 #Python
python3实现域名查询和whois查询功能
Jun 21 #Python
You might like
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
python使用多进程的实例详解
2018/09/19 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
异步传递消息系统的作用
2016/05/01 面试题
办公文员的工作岗位职责
2013/11/12 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
vue组件vue-esign实现电子签名
2022/04/21 Vue.js
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android