详解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 相关文章推荐
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
Django中使用group_by的方法
May 26 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
python 解压pkl文件的方法
Oct 25 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
python3 pygame实现接小球游戏
May 14 Python
tesserocr与pytesseract模块的使用方法解析
Aug 30 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
Python实现加密接口测试方法步骤详解
Jun 05 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
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
js实现微博发布小功能
2017/01/12 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
Django的数据模型访问多对多键值的方法
2015/07/21 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python中format()格式输出全解
2019/04/12 Python
python3中eval函数用法使用简介
2019/08/02 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
九年级物理教学反思
2014/01/29 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
保证书范文大全
2014/04/28 职场文书
学校献爱心活动总结
2014/07/08 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL