精华内容
下载资源
问答
  • 1.对于接口自动化测试,一般接口以json形式发送返回,往往我们就需要遍历json文件中所有keyvalue以及修改替换key对于的value。例如json发送/接收的文件:SendRegisterVerificationCodejson_txt = """{"header":{...

    1.对于接口自动化测试,一般接口以json形式发送返回,往往我们就需要遍历json文件中所有key,value以及修改替换key对于的value。

    例如json发送/接收的文件:

    SendRegisterVerificationCodejson_txt = """

    {

    "header":{

    "funcNo": "IF010002",

    "opStation": "11.11.1.1",

    "appId": "aaaaaa",

    "deviceId": "kk",

    "ver":"wx-1.0",

    "channel": "4"

    },

    "payload": {

    "mobileTel": "13817120001"

    }

    }

    """

    需要查找所有的报文中的key,value,这个json是字典包含字典的形式,如遍历字典后,依旧含有 key对应的value值是字典,需要继续遍历,此时需要用递归进行处理

    代码如下:

    1 importjson2 #json文件发送形式

    3 SendRegisterVerificationCodejson_txt = """

    4 {5 "header":{6 "funcNo": "IF010002",7 "opStation": "11.11.1.1",8 "appId": "aaaaaa",9 "deviceId": "kk",10 "ver":"wx-1.0",11 "channel": "4"12 },13 "payload": {14 "mobileTel": "13817120001"15 }16 }17 """

    18 date_json =json.loads(SendRegisterVerificationCodejson_txt)19 print(date_json)20 print("*"*10)21 #发送时,每次需要注册新的手机号码,就需要json每次提示mobileTel的value进行发送

    22 #遍历json文件所有的key对应的value

    23 dic ={}24 defjson_txt(dic_json):25 if isinstance(dic_json,dict): #判断是否是字典类型isinstance 返回True false

    26 for key indic_json:27 if isinstance(dic_json[key],dict):#如果dic_json[key]依旧是字典类型

    28 print("****key--:%s value--: %s"%(key,dic_json[key]))29 json_txt(dic_json[key])30 dic[key] =dic_json[key]31 else:32 print("****key--:%s value--: %s"%(key,dic_json[key]))33 dic[key] =dic_json[key]34

    35 json_txt(date_json)36 print("dic ---:"+str(dic))

    输出结果:

    data_json: {'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'payload': {'mobileTel': '13817120001'}}

    data_json: {'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'payload': {'mobileTel': '13817120001'}}

    **********

    ****key--:header ,value--: {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}

    ****key--:funcNo ,value--: IF010002

    ****key--:opStation ,value--: 11.11.1.1

    ****key--:appId ,value--: aaaaaa

    ****key--:deviceId ,value--: kk

    ****key--:ver ,value--: wx-1.0

    ****key--:channel ,value--: 4

    ****key--:payload ,value--: {'mobileTel': '13817120001'}

    ****key--:mobileTel ,value--: 13817120001

    dic ---: {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4', 'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'mobileTel': '13817120001', 'payload': {'mobileTel': '13817120001'}}

    2.对于接口测试,json主体内容不变,一般我们都是修改json内key对于的value值进行测试,这个接口是手机号注册的接口,正常情况我们都是修改手机号进行测试;

    如将key --'mobileTel'对于的value-- '13817120001'修改,假如修改为13333333333;

    那我们需要在遍历json字典key值后,比对如果遍历到对于的key则修改其value。

    def check_json_value(dic_json,k,v):

    if isinstance(dic_json,dict):

    for key in dic_json:

    if key == k:

    dic_json[key] = v

    elif isinstance(dic_json[key],dict):

    check_json_value(dic_json[key],k,v)

    print("date_json 变更前 :")

    print(date_json)

    check_json_value(date_json,'mobileTel','13333333333')

    print("date_json 变更后 :")

    print(date_json)

    完整代码:

    1 importjson2 """

    3 实现:4 1.json_txt(dic_json):json格式,遍历key,value,存储到字典中5 2.heck_json_value(dic_json,k,v)json格式,遍历后,替换key的value值6 3.data_Json(Sendjson_txt),将json字符串转化为json格式7 """

    8

    9 #json序列化json格式

    10 defdata_Json(Sendjson_txt):11 data_json =json.loads(Sendjson_txt)12 print('data_json:',data_json)13 returndata_json14

    15 #遍历json文件所有的key对应的value,存储到一个字典中

    16 dic ={}17 defjson_txt(dic_json):18 if isinstance(dic_json,dict): #判断是否是字典类型isinstance 返回True,false

    19 for key indic_json:20 if isinstance(dic_json[key],dict):#如果dic_json[key]依旧是字典类型

    21 print("****key--:%s ,value--: %s"%(key,dic_json[key]))22 #递归调用

    23 json_txt(dic_json[key])24 dic[key] =dic_json[key]25 else:26 print("****key--:%s ,value--: %s"%(key,dic_json[key]))27 dic[key] =dic_json[key]28

    29

    30 #遍历json字典key值后,查到ke则修改值value

    31 defcheck_json_value(dic_json,k,v):32 ifisinstance(dic_json,dict):33 for key indic_json:34 if key ==k:35 dic_json[key] =v36 elifisinstance(dic_json[key],dict):37 check_json_value(dic_json[key],k,v)38

    39 if __name__=="__main__":40 #json文件发送形式

    41 Sendjson_txt = """

    42 {43 "header":{44 "funcNo": "IF010002",45 "opStation": "11.11.1.1",46 "appId": "aaaaaa",47 "deviceId": "kk",48 "ver":"wx-1.0",49 "channel": "4"50 },51 "payload": {52 "mobileTel": "13817120001"53 }54 }55 """

    56 #格式化

    57 data_json =data_Json(Sendjson_txt)58 print('data_json:',data_json)59 print("*"*10)60 #61 json_txt(data_json)62 print("dic ---:"+str(dic))63

    64 #65 print("data_json 变更前 :")66 print(data_json)67 check_json_value(data_json,'mobileTel','13333333333')68 print("data_json 变更后 :")69 print(data_json)

    执行结果:

    data_json: {'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'payload': {'mobileTel': '13817120001'}}

    data_json: {'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'payload': {'mobileTel': '13817120001'}}

    **********

    ****key--:header ,value--: {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}

    ****key--:funcNo ,value--: IF010002

    ****key--:opStation ,value--: 11.11.1.1

    ****key--:appId ,value--: aaaaaa

    ****key--:deviceId ,value--: kk

    ****key--:ver ,value--: wx-1.0

    ****key--:channel ,value--: 4

    ****key--:payload ,value--: {'mobileTel': '13817120001'}

    ****key--:mobileTel ,value--: 13817120001

    dic ---: {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4', 'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'mobileTel': '13817120001', 'payload': {'mobileTel': '13817120001'}}

    data_json 变更前 :

    {'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'payload': {'mobileTel': '13817120001'}}

    data_json 变更后 :

    {'header': {'funcNo': 'IF010002', 'opStation': '11.11.1.1', 'appId': 'aaaaaa', 'deviceId': 'kk', 'ver': 'wx-1.0', 'channel': '4'}, 'payload': {'mobileTel': '13333333333'}}

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------

    PS:正在写一个处理接口的逻辑,感谢原文作者的分享:https://www.cnblogs.com/HZQHZA/p/7301362.html

    展开全文
  • 1 遍历字典子元素 dictionary = {"one": "语文", "two": "数学", "three": "英语...2 单独遍历key,value 可以使用for in dictionary = {"one": "语文", "two": "数学", "three": "英语", "four": "物理", "five".

    1 遍历字典子元素

    dictionary = {"one": "语文", "two": "数学", "three": "英语", "four": "物理", "five": "化学"}
    for key in dictionary.items():
        print(key)

    打印结果

    2  单独遍历出key,value 可以使用for in

    dictionary = {"one": "语文", "two": "数学", "three": "英语", "four": "物理", "five": "化学"}
    # 如果想单独遍历出key,value 可以使用for in
    for key, value in dictionary.items():
        # 遍历字典的key
        print(key)
        # 遍历字典的value
        print(value)

    打印结果

    3 或者直接使用for in 遍历出key 和value

    dictionary = {"one": "语文", "two": "数学", "three": "英语", "four": "物理", "five": "化学"}
    for key in dictionary:
        # 遍历字典的key
        print(key)
        # 遍历字典的value
        print(dictionary[key])

    打印结果

    4 遍历出 value 

    dictionary = {"one": "语文", "two": "数学", "three": "英语", "four": "物理", "five": "化学"}
    # dictionary.values() 是获取字典的value 所以可以使用它遍历出values 如下
    for values in dictionary.values():
        print(values)

    打印结果

    展开全文
  • python 遍历字典 提取指定keyvalue

    万次阅读 2018-11-01 13:24:05
    python 查找字典key的值value1,简单字典查找key值 1,简单字典查找key值 #! /usr/local/bin/python3 # coding:utf-8 """ 遍历字典 提取keyvalue &...

    python 查找字典key的值value

    1,简单字典查找key值

    #! /usr/local/bin/python3
    # coding:utf-8
    """
    遍历字典 提取key值value
    """
    import json
    file = "/Users/y50/data"
    soulData = open(file , 'r').read()
    data = json.loads(soulData)
    print ("data type : " , type(data))
    print ("data : " , data)
    data_key = "name"
    for key in data.keys():
        if key == data_key:
            print (data[key])
        
    print ("测试")
    
    data type :  <class 'dict'>
    data :  {'name': 'ni', 'city': 'tt', 'id': 2256}
    ni
    测试
    

    参考:

    1. python,字典中如何根据value值取对应的key值
    2. 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
    3. Python字典嵌套字典的情况下获取某个key的value
    展开全文
  • 对于接口自动化测试,一般接口以json形式发送返回,往往我们就需要遍历json文件中所有keyvalue以及修改替换key对于的value。例如json发送/接收的文件:SendRegisterVerificationCodejson_txt = """...


    对于接口自动化测试,一般接口以json形式发送返回,往往我们就需要遍历json文件中所有key,value以及修改替换key对于的value。

    例如json发送/接收的文件:

    复制代码
    SendRegisterVerificationCodejson_txt = """
    {
      "header":{
        "funcNo": "IF010002",
        "opStation": "11.11.1.1",
        "appId": "aaaaaa",
        "deviceId": "kk",
        "ver":"wx-1.0",
        "channel": "4"
      },
      "payload": {
        "mobileTel": "13817120001"
      }
    }
    """
    复制代码

    我们需要查找所有的报文中的key,value,这个json是字典包含字典的形式,如遍历字典后,依旧含有 key对应的value值是字典,需要继续遍历,此时需要用递归进行处理

    复制代码
    import json
    #json文件发送形式
    SendRegisterVerificationCodejson_txt = """
    {
      "header":{
        "funcNo": "IF010002",
        "opStation": "11.11.1.1",
        "appId": "aaaaaa",
        "deviceId": "kk",
        "ver":"wx-1.0",
        "channel": "4"
      },
      "payload": {
        "mobileTel": "13817120001"
      }
    }
    """
    date_json = json.loads(SendRegisterVerificationCodejson_txt)
    print(date_json)
    print("*"*10)
    # 发送时,每次需要注册新的手机号码,就需要json每次提示mobileTel的value进行发送
    #遍历json文件所有的key对应的value
    dic ={}
    def json_txt(dic_json):
        if isinstance(dic_json,dict): #判断是否是字典类型isinstance 返回True false     
            for key in dic_json:
                if isinstance(dic_json[key],dict):#如果dic_json[key]依旧是字典类型
                    print("****key--:%s value--: %s"%(key,dic_json[key]))
                    json_txt(dic_json[key])
                    dic[key] = dic_json[key]
                else:
                    print("****key--:%s value--: %s"%(key,dic_json[key]))
                    dic[key] = dic_json[key]
                    
    json_txt(date_json)
    print("dic ---: "+str(dic))
    复制代码

    其输出结果:

    复制代码
    {'payload': {'mobileTel': '13817120001'}, 'header': {'channel': '4', 'deviceId': 'kk', 'opStation': '11.11.1.1', 'ver': 'wx-1.0', 'funcNo': 'IF010002', 'appId': 'aaaaaa'}}
    **********
    ****key--:payload value--: {'mobileTel': '13817120001'}
    ****key--:mobileTel value--: 13817120001
    ****key--:header value--: {'channel': '4', 'deviceId': 'kk', 'opStation': '11.11.1.1', 'ver': 'wx-1.0', 'funcNo': 'IF010002', 'appId': 'aaaaaa'}
    ****key--:channel value--: 4
    ****key--:deviceId value--: kk
    ****key--:opStation value--: 11.11.1.1
    ****key--:ver value--: wx-1.0
    ****key--:funcNo value--: IF010002
    ****key--:appId value--: aaaaaa
    dic ---: {'channel': '4', 'payload': {'mobileTel': '13817120001'}, 'deviceId': 'kk', 'opStation': '11.11.1.1', 'header': {'channel': '4', 'deviceId': 'kk', 'opStation': '11.11.1.1', 'ver': 'wx-1.0', 'funcNo': 'IF010002', 'appId': 'aaaaaa'}, 'mobileTel': '13817120001', 'ver': 'wx-1.0', 'funcNo': 'IF010002', 'appId': 'aaaaaa'}
    ******************************
    复制代码

    对于接口测试,json主体内容不变,一般我们都是修改json内key对于的value值进行测试,这个接口是手机号注册的接口,正常情况我们都是修改手机号进行测试;

    如将key --'mobileTel'对于的value-- '13817120001'修改,假如修改为13333333333;

    那我们需要在遍历json字典key值后,比对如果遍历到对于的key则修改其value。

    复制代码
    def  check_json_value(dic_json,k,v):
        if isinstance(dic_json,dict):
            for key in dic_json:
                if key == k:
                    dic_json[key] = v
                elif isinstance(dic_json[key],dict):
                    check_json_value(dic_json[key],k,v)
    print("date_json 变更前   :")
    print(date_json)
    check_json_value(date_json,'mobileTel','13333333333')
    print("date_json 变更后   :")
    print(date_json)
    复制代码

    其输出结果:

    复制代码
    date_json 变更前   :
    {'header': {'appId': 'aaaaaa', 'funcNo': 'IF010002', 'ver': 'wx-1.0', 'opStation': '11.11.1.1', 'deviceId': 'kk', 'channel': '4'}, 'payload': {'mobileTel': '13817120001'}}
    date_json 变更后   :
    {'header': {'appId': 'aaaaaa', 'funcNo': 'IF010002', 'ver': 'wx-1.0', 'opStation': '11.11.1.1', 'deviceId': 'kk', 'channel': '4'}, 'payload': {'mobileTel': '13333333333'}}
    复制代码
    展开全文
  • Python中字典的遍历之后keyvalue的保存赋值问题 加粗样式# 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解...
  • python 字典操作提取key,value

    万次阅读 多人点赞 2017-08-14 17:24:27
    python 字典操作提取key,value dictionaryName[key] = value 1.为字典增加一项 2.访问字典中的值 3、删除字典中的一项 4、遍历字典 5、字典遍历key\value 6、字典的标准操作符 7...
  • 1.遍历key值1 >>> d = {'Python':'astonishing', 'C++':'complicated', 'Java':'versatile'}2 >>> for key in d:3 ... print(key + ':' + d[key])4 ...5 Python:astonishing6 C++:complicated7 Java:versatile同理,...
  • 广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!例如:()#求长度,len()... dd=(1,2)*3print(dd)#迭代,可用于迭代遍历元祖中的各个对象。 for x in ...
  • Python遍历字典中所有的key和value值.pdf
  • python遍历字典

    2020-12-22 10:05:43
    for key, value in user_0.items(): //for循环依次将每个键-值对分别存储在key,value这两个变量中 print(key.title()) print(value.title()) //输出结果为: [('username', 'punky'), ('first', 'lee'), ('
  • 有一个字段如下,如果我想获取字典中的key和value值,方法如下: dict1={‘aaa’:‘111’,‘bbb’:‘222’} #获取key值—方法1: for i in dict1.keys(): print(i) #获取key值—方法2: for i in dict1: print(i) #...
  • python遍历dict的value

    万次阅读 2015-08-31 19:56:38
    之前提到过,在dict中,可以通过d[索引]或者d.get[索引]两种方式来获取某个key对应的value,其实,python有内置的函数,可以直接遍历dict中的value 一、d.values():这个函数可以将dict中的value全部拿出来,变成一...
  • Python字典, 字典key遍历。 程序实例1: 使用keys()函数。 # key遍历 dict_val = {'及时雨':"宋江",'花和尚':'鲁智深','母夜叉':'孙二娘'} for key in dict_val.keys(): print(key) 字典value遍历。 程序实例2...
  • Python遍历字典中所有的key和value

    万次阅读 2019-06-02 09:51:31
    aa=["xuhaitao","xuhaihuan","xuhairu","lidaiping"] cc={"ba":"xuguozhu123","ma":"lidaiping",33:...#遍历字典所有key值 for c in cc.keys(): print(c) #遍历字典所有key值另一种写法 for c in cc: print(c) ...
  • 遍历字典修改符合条件的value class traversal_modify(object): def modify_dict(self,dic): for key, val in dic.items(): if type(val) == list: self.modify_list(val) elif type(val) == dict: self....
  • 1. 遍历字典的键keypython学习网,大量的免费python视频教程,欢迎在线学习!①>>> d={'list':[1, 2, 3],1:123,'111':'python3','tuple':(4, 5, 6)}>>> for key in d:print(str(key)+':'+str(d[key]))list:[1, 2, 3]...
  • python 遍历json、字典dict,替换value

    千次阅读 2020-09-09 16:06:28
    接口自动化测试时,有时候请求体(json格式)是固定的,每次请求只想替换请求体中的某个key的值,需要遍历并替换调,... 替换指定keyvalue为空 """ def __init__(self, goal_key): self.goal_key = goal_key ...
  • Python 遍历字典

    2018-03-23 22:23:38
    dict (字典)是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=&gt;value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: ...1.遍历key值: ...
  • python遍历词典

    2019-01-01 08:54:23
    要编写用于遍历字典的for 循环,可声明两个变量,用于存储键—值对中的键值。对于这两个变量,可使用任何名称 user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', } for key, value in user_0...
  • Python 遍历网页代码抓取文字图片

    千次阅读 2016-04-17 19:48:28
    Python 遍历网页代码抓取文字图片通过python的几个工具requests,beautifulSoup,json, Pool暴力遍历url抓取内容 获取全量的文字图片链接 获取图片 获取全量的文字图片链接#!/usr/bin/python #-*- coding:utf-...
  • 目录1 介绍2 遍历 key 值3 遍历 value 值4 遍历字典项5 遍历字典 键值 1 介绍 主要分为3大类: keys() 、values() 、items() 2 遍历 key 值 方法一: data = {'A': 1, 'B': 3, 'C': 5} for key in data: print(f'{...
  • python 遍历字典 遍历列表 文件读写

    千次阅读 2019-02-26 12:44:04
    1. 遍历字典(只能遍历key值) dic = {&quot;1&quot;:21,&quot;2&quot;:64,&quot;3&quot;:98} #遍历字典只是遍历key值 for c in dic: print(c, end = &quot;,&quot;) 结果: 1,2,...
  • 这篇文章主要介绍了Python中使用item()方法遍历字典的例子,for...in这种是Python中最常用的遍历字典的方法了,需要的朋友可以参考下Python字典的...item()item()方法把字典中每对key和value组成一个元组,并把这些元...
  • Python遍历字典

    2016-01-01 22:04:00
    第一种是取出key和value,然后把value转换成列表,但是这样如果数据量小的时候还可以,要是多的话会占用大量内存消耗很多时间 for k,v in dic.items(): print k,v 第二种是遍历字典的key,根据key去找...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,841
精华内容 23,936
关键字:

python遍历对象key和value

python 订阅