一、字典与JSON
(一)、字典
1.字典是以键值对形式出现的存储对象,且可存储任意类型对象.
2.字典用大括号{}表示,键和值用冒号‘:’关联,键和值用冒号‘:’关联.
示例:
salary = {'月薪':'12K','年终':'2个月'}
print(type(salary))
print(salary)
运行结果:
2.字典是无序的,不能通过下标来获取字典内的值
salary1 = {'月薪':'12K','年终':'2个月'}
salary2 = {'年终':'2个月','月薪':'12K'}
print(salary1 == salary2)#两个字典内的键值对顺序不同,但是等价的。
print(salary2['年终'])#通过键获取值
运行结果:
3. 字典的key值唯一
dict3 = {'姓名':'张飞','体重':250,'姓名':'关羽'}
#一个字典中有两个同样的键‘姓名’
print(dict3)
>>>{'姓名': '关羽', '体重': 250}
#可以看到,后边的键值对会覆盖前边的
运行截图:
4.访问、新增、删除、修改、遍历
salary1 = {'月薪':'12K','年终':'2个月'}
1.新增
salary1['学校'] = '全日制二本'
>>>{'月薪': '12k', '年终': '2个月', '学校': '全日制二本'}
2.删除
del salary1['月薪']#del 删除
>>>{'年终': '2个月'}
3.修改
salary1['月薪'] = '20k'
>>> {'月薪':'20K','年终':'2个月'}
4.遍历
salary1 = {'月薪':'12K','年终':'2个月'}
for key,value in salary1.items():#items(),用来遍历键值对:
print(key, value)
>>>月薪 12K
年终 2个月
for key in salary1.keys():#keys(),用来遍历键
print(key)
>>>月薪
年终
for value in salary1.values():#values(),用来遍历值
print(value)
>>>12K
2个月
5.清空
salary1.clear() # 清空字典
>>>{}
(二)、json
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。
json格式有两种
1.非常像字典的字符串--键值对形式
2.非常像列表的字符串--数组形式
两种形式本质上是都是字符串
用的比较多是键值对形式
json格式多用于不同模块或客户端与服务器或服务器与服务器之前的数据交换
接收方获取到json格式的数据后进行解析并使用。
示例:
1.字典转换为JSON
import json
salary1 = {'月薪':'12K','年终':'2个月'}
data = {
'月薪':'12K',
'年终':'2个月',
}
json_str = json.dumps(data,ensure_ascii=False) #ensure_ascii=False可以解决中文乱码的问题
print("Python 原始数据:", repr(data))
print("JSON 对象:", json_str)
2.将 JSON 对象转换为 Python 字典
str11 = '''{"姓名":"关羽", "体重":"250","身高":"195"}'''
str11_dict = json.loads(str11)#json转为字典
print(str11_dict)
>>>{'姓名': '关羽', '体重': '250', '身高': '195'}
print(type(str11_dict))
>>><class 'dict'>#已经转为字典格式
运行结果:
3.备注
字典与json格式有一个小的区别
json里面必须使用双引号,字典则单引号双引号都行