python-字典与json格式

本文介绍了Python字典的概念、特性和常用操作,包括键值对、可变性、无序性等。同时讲解了如何通过json.loads()和json.dumps()进行字典与JSON格式的转化,以及字典的合并、遍历、更新、删除等方法。此外,还展示了JSON在接口测试中的应用,如何修改JSON数据。
摘要由CSDN通过智能技术生成

字典与json格式

本章小结:

1、字典的概念和特性?字典有什么优点?

2、字典的常用操作有哪些?怎么遍历字典?

3、json.loads()和 json.dumps(),字典与json格式的相互转化。(注意json的标准格式)

#字典的定义和特性,字典是以键值对形式出现的存储对象;
# 1、字典是可变对象,
# 2、字典的键可以存放不可变对象。  #例如可以放数字、字符串、元组
# 3、字典的值可以存放任意类型的对象,
# 4、字典的键是唯一的,    #后面的会替换前面的
# 5、字典是无序的
dict = {'蒙':'蒙的意思'}  #dict = {'键':'值'}
##
dict1 = {'A':'12','B':'13','C':'以上都不对'}
dict2 = {'B':'13','C':'以上都不对','A':'12'}
print(dict1==dict2)  # 输出是 True ,这说明字典是无序的

#字典的常用操作
#1、通过键来进行查询
dict3 = {'A':'1','B':'5','C':'23'}
print(dict3['A'])   # 通过键来进行查询
#2、更新键值对
dict3['A'] = 'abc'
print(dict3['A'])
#3、新增键值对
dict3['D'] = '369'   #更新和新增都是通过 对键进行赋值 来完成更新和新增的操作。
print(dict3)
#4、 in 通过键进行判断
print('1' in dict3)   #输出False   因为in是通过键来判断,不是通过值
print('B' in dict3)   #输出True
#5、删除 键值对
del dict3['A']
print(dict3)
#6、清空字典与重新赋值空字典
print(id(dict1))
dict3.clear()
print(id(dict1))  #删除字典中的键值对,地址不变
dict3 = {}
print(id(dict3))  #重新定义了一个字典,地址变化了

#7、获取字典中的所有键
dict3 = {'A':'1','B':'5','C':'23'}
print(dict3.keys()) # 获取字典中的所有键
print(dict3.values())  #获取字典中的所有值
print(dict3.items())   #获取字典中的键值对

for  key in dict3.keys():
    print(key)     #通过遍历的方式去获取键
for value in dict3.values():
    print(value)   #通过遍历值的方式去获取值
for key,value in dict3.items():
    print(key,value)  #通过遍历的方式去获取键值对

#8、字典的合并
dict4 = {'A':'这个是dict4的A值','d':'5','e':'23'}
dict3.update(dict4)
print(dict3)   #合并时字典会自动判断是新增还是修改。若键相同,值不同。则后面的键值对会自动替换掉前面的(也就是字典的更新操作)

#json和字典
#json是一种很像字典的字符串,是接口测试中常见的格式;json和字典可以相互转换;json.loads() 将json转为字典,json.dumps() 将字典转为json
str1 = '''{
       "a001":"张三",
       "a002":"15879657888",
       "a003":"男",
       "a004":"21"
       }'''
#注册页面的请求,传了一个json,手机号唯一,要求修改一下手机号
import json
from random import randint
str1_new = json.loads(str1) #利用json.loads() 将json转为字典格式
str1_new['a002'] = f'138{randint(100000000,99999999999)}'  #138拼接上一个随机数, f是格式化字符串
print(str1_new)
str1 = json.dumps(str1_new)  #利用json.dumps() 将字典转为json格式
print(str1)



输出

True
1
abc
{'A': 'abc', 'B': '5', 'C': '23', 'D': '369'}
False
True
{'B': '5', 'C': '23', 'D': '369'}
26230672
26230672
27229088
dict_keys(['A', 'B', 'C'])
dict_values(['1', '5', '23'])
dict_items([('A', '1'), ('B', '5'), ('C', '23')])
A
B
C
1
5
23
A 1
B 5
C 23
{'A': '这个是dict4的A值', 'B': '5', 'C': '23', 'd': '5', 'e': '23'}
{'a001': '张三', 'a002': '1387695969725', 'a003': '男', 'a004': '21'}
{"a001": "\u5f20\u4e09", "a002": "1387695969725", "a003": "\u7537", "a004": "21"}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值