详解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中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
wxPython实现窗口用图片做背景
Apr 25 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
python中HTMLParser模块知识点总结
Jan 25 Python
Python 流媒体播放器的实现(基于VLC)
Apr 28 Python
Django程序的优化技巧
Apr 29 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
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
php 魔术函数使用说明
2010/02/21 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
js计算页面刷新的次数
2009/07/20 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
React服务端渲染原理解析与实践
2021/03/04 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
HTML5的革新 结构之美
2011/06/20 HTML / CSS
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
某个公司的Java笔面试题
2016/03/11 面试题
保护环境建议书400字
2014/05/13 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS