详解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字符串连接的N种方式总结
Sep 17 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
python中列表元素连接方法join用法实例
Apr 07 Python
在Python中操作文件之read()方法的使用教程
May 24 Python
python生成验证码图片代码分享
Jan 28 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
利用python GDAL库读写geotiff格式的遥感影像方法
Nov 29 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
Python FtpLib模块应用操作详解
Dec 12 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 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
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
python统计cpu利用率的方法
2015/06/02 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
Python 中如何写注释
2020/08/28 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
自我评价的范文
2014/02/02 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
2014年党委工作总结
2014/11/22 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
JavaScript设计模式之原型模式详情
2022/06/21 Javascript