ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python中字典与json的联系与区别

2021-12-15 13:34:48  阅读:190  来源: 互联网

标签:python 195 json 姓名 print 250 字典


公众号‘小鹏长翅’同步发布

今天梳理下json和python中的字典的区别与联系

字典

字典是以键值对形式出现的存储对象

字典用大括号{}表示

  • 一个简单的字典
dict1 = {'姓名':'张飞','体重':250}
print(type(dict1))
>>><class 'dict'>

其中'姓名'和'体重'是键,'张飞'和250是各自的值

键和值用冒号‘:’关联

多个键值对之间用逗号‘,’分隔

  • 字典是无序的,不能通过下标来获取字典内的值

只能用dict[键名]获取键的值

dict1 = {'姓名':'张飞','体重':250}
dict2 = {'体重':250,'姓名':'张飞'}
print(dict1 == dict2)
>>>True#两个字典内的键值对顺序不同,但是等价的。
print(dict2['姓名'])
>>>张飞#通过键获取值
  • 字典的值是唯一的
dict3 = {'姓名':'张飞','体重':250,'姓名':'关羽'}
#一个字典中有两个同样的键‘姓名’
print(dict3)
>>>{'姓名': '关羽', '体重': 250}
#可以看到,后边的键值对会覆盖前边的

字典的新增与修改语句是一样的,根据键修改值,已有键则更新,否则新增

dict4 = {'姓名':'张飞','体重':250}
dict4['姓名'] = '关羽'#字典中已有键‘姓名’,则修改该键的值
dict4['身高'] = 195#字典中没有键‘身高’,则新增一个键值对
print(dict4)
>>>{'姓名': '关羽', '体重': 250, '身高': 195}
  • 删除字典中的键值对
dict5 = {'姓名': '关羽', '体重': 250, '身高': 195}
del dict5['体重']#del 删除
print(dict5)
>>>{'姓名': '关羽', '身高': 195}
  • 清空字典

清空字典有两种方法

方法1:清除字典的值,字典还是那个字典

方法2:重新定义一个新的字典,名字与原字典相同,值为空。

可以通过函数id()来理解

id():返回对象位于内存中的地址,也是对象在内存中的唯一标识符

  • 方法1
dict6 = {'姓名': '关羽', '体重': 250, '身高': 195}
print(id(dict6))#查看字典dict6在内存中的标识符
dict6.clear()#清空字典
print(dict6)#清空后,再查看字典dict6在内存中的标识符
print(id(dict6))
>>>
2385073211456
{}
2385073211456#可以看到,标识符没有变化
  • 方法2
dict7 = {'姓名': '关羽', '体重': 250, '身高': 195}
print(id(dict7))#查看字典dict7在内存中的标识符
dict7 = {}#清空字典
print(dict7)#清空后,再查看字典dict7在内存中的标识符
print(id(dict7))
>>>
1984743540800
{}
1984743540864#可以看到,标识符发生了变化
  • 遍历字典
    • 遍历字典的键值对
dict8 = {'姓名': '关羽', '体重': 250, '身高': 195}
for key,value in dict8.items():#items(),用来遍历键值对
    print(key,value)
>>>
姓名 关羽
体重 250
身高 195
  • 遍历字典中的键
dict9 = {'姓名': '关羽', '体重': 250, '身高': 195}
for key in dict9.keys():#keys(),用来遍历键
    print(key)
>>>
姓名
体重
身高
  • 遍历字典中的值
dict10 = {'姓名': '关羽', '体重': 250, '身高': 195}
for value in dict10.values():#values(),用来遍历值
    print(value)
>>>
关羽
250
195

json格式

json格式有两种

1.非常像字典的字符串-键值对形式

2.非常像列表的字符串-数组形式

两种格式本质上是都是字符串

用的比较多是键值对形式

json格式多用于不同模块或客户端与服务器或服务器与服务器之前的数据交换

接收方获取到json格式的数据后进行解析并使用。

#一个简单的json格式文件
dict11 = '''{"姓名":"关羽", "体重":"250","身高":"195"}'''
print(type(dict11))
>>><class 'str'>#本质上还是字符串

  • json转为字典格式 -- loads()
import json#引用json库,专门用来处理json数据的

str11 = '''{"姓名":"关羽", "体重":"250","身高":"195"}'''
str11_dict = json.loads(str11)#json转为字典
print(str11_dict)
>>>{'姓名': '关羽', '体重': '250', '身高': '195'}
print(type(str11_dict))
>>><class 'dict'>#已经转为字典格式
  • 字典转json格式 -- dumps()
import json

dict12 = {'姓名': '关羽', '体重': '250', '身高': '195'}
str11_dict = json.dumps(dict12,ensure_ascii=False)
#ensure_ascii=False可以解决中文乱码的问题
print(str11_dict)
>>>{"姓名": "关羽", "体重": "250", "身高": "195"}
print(type(str11_dict))
>>><class 'str'>已经转为json格式

注意:

字典与json格式有一个小的区别

json里面必须使用双引号,字典则单引号双引号都行

标签:python,195,json,姓名,print,250,字典
来源: https://www.cnblogs.com/xpzc/p/15692295.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有