最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

接口自動化多層嵌套json數(shù)據(jù)處理代碼實例

 更新時間:2020年11月20日 10:43:09   作者:yoyo008  
這篇文章主要介紹了接口自動化多層嵌套json數(shù)據(jù)處理代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

最近在做接口自動化測試,響應(yīng)的內(nèi)容大多數(shù)是多層嵌套的json數(shù)據(jù),在對響應(yīng)數(shù)據(jù)進(jìn)行校驗的時候,可以通過(key1.key2.key3)形式獲取嵌套字典值的方法獲取響應(yīng)值,再和預(yù)期值比較

  keys_list = keys.split('.')
  #以“.”為間隔,將字符串分裂為多個字符串,其實字符串為字典的鍵,保存在列表keys_list里
  if isinstance(date,dict):
    #如果傳入的數(shù)據(jù)為字典
    dictionary = dict(date)
    #初始化字典
    for i in keys_list:
      #按照keys_list順序循環(huán)鍵值
      try:
        if dictionary.get(i) != None:
          dict_values = dictionary.get(i)
        #如果鍵對應(yīng)的值不為空,返回對應(yīng)的值
        elif dictionary.get(i) == None:
          dict_values = dictionary.get(int(i))
        #如果鍵對應(yīng)的值為空,將字符串型的鍵轉(zhuǎn)換為整數(shù)型,返回對應(yīng)的值
      except:
        return default
          #如果字符串型的鍵轉(zhuǎn)換整數(shù)型錯誤,返回None
      dictionary = dict_values
    return dictionary
  else: 
    #如果傳入的數(shù)據(jù)為非字典
    try:
      dictionary = dict(eval(date))
      #如果傳入的字符串?dāng)?shù)據(jù)格式為字典格式,轉(zhuǎn)字典類型,不然返回None
      if isinstance(dictionary,dict):
        for i in keys_list:
          #按照keys_list順序循環(huán)鍵值
          try:
            if dictionary.get(i) != None:
              dict_values = dictionary.get(i)
            #如果鍵對應(yīng)的值不為空,返回對應(yīng)的值
            elif dictionary.get(i) == None:
              dict_values = dictionary.get(int(i))
            #如果鍵對應(yīng)的值為空,將字符串型的鍵轉(zhuǎn)換為整數(shù)型,返回對應(yīng)的值
          except:
            return default
              #如果字符串型的鍵轉(zhuǎn)換整數(shù)型錯誤,返回None
          dictionary = dict_values
        return dictionary
    except:
      return default

運行結(jié)果:

一:字典類型數(shù)據(jù)。


二:字典類型數(shù)據(jù),包含的鍵為數(shù)字。

三:json類型的字符串。

有個朋友分享過這段代碼,大家可以試試。

class obj(object):
  def __init__(self, d):
    for a, b in d.items():
      if isinstance(b, (list, tuple)):
        setattr(self, a, [obj(x) if isinstance(x, dict) else x for x in b])
      else:
        setattr(self, a, obj(b) if isinstance(b, dict) else b)

d = {'a':1, 'b':{'c':2}, 'd':[{'e':1}]}

res = obj(d)
print res.a
print res.b.c
print res.d[0].e

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

江津市| 安顺市| 呼伦贝尔市| 永善县| 金堂县| 德惠市| 临朐县| 白银市| 南投县| 建昌县| 西丰县| 曲靖市| 饶阳县| 延寿县| 广丰县| 贺州市| 绥江县| 九龙坡区| 封丘县| 汉寿县| 襄汾县| 右玉县| 隆林| 民乐县| 吴桥县| 仁寿县| 海宁市| 开化县| 榕江县| 英德市| 阿克| 炉霍县| 福清市| 文山县| 华安县| 赞皇县| 株洲县| 额敏县| 平和县| 出国| 石首市|