详解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函数装饰器用法实例详解
Jun 04 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
python爬虫刷访问量 2019 7月
Aug 01 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
基于Python获取城市近7天天气预报
Nov 26 Python
Python中常用的os操作汇总
Nov 05 Python
Python暴力破解Mysql数据的示例
Nov 09 Python
python动态规划算法实例详解
Nov 22 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 Python
用python开发一款操作MySQL的小工具
May 12 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 Python
只用Python就可以制作的简单词云
Jun 07 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
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
Yii核心验证器api详解
2016/11/23 PHP
dojo随手记 gird组件引用
2011/02/24 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
python 字符串split的用法分享
2013/03/23 Python
Python操作csv文件实例详解
2017/07/31 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
Python图片的横坐标汉字实例
2019/12/04 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
如何写一封打动人心的求职信
2014/02/17 职场文书
助残日活动总结
2014/08/27 职场文书
读群众路线的心得体会
2014/09/03 职场文书
学生评语集锦
2015/01/04 职场文书