使用机器人框架忽略字典中的特定键
Ignore specific keys in a dictionary using robot framework
如何使用机器人框架脚本忽略字典中的特定键?该字典是一个嵌套的 dictionary.I 尝试使用以下代码但它仅删除第一级的键。感谢任何帮助。
*** Variables ***
&{type} mobile=android mobileV2=windows
&{DICTIONARY} interface=ethernet interfaceId=default favorite=false mobile=android mobileV2=windows type=&{type}
*** Test Cases ***
Filter Dictionary Values
Log \nDictionaty values... : ${DICTIONARY} console=${True}
${d1_filtered} = Evaluate {k:v for k,v in ${DICTIONARY}.items() if k not in ('mobile','mobileV2')}
Log \nDictionaty filtered values... : ${d1_filtered} console=${True}
生成的输出日志如下。
字典过滤值...:{'interface':'ethernet','interfaceId':'default','favorite':'false','type':{'mobile':'android','mobileV2':'windows'}}
您可以创建您的库并将其导入 here.
使用这个 answer 库看起来像这样。
class MyLibrary:
def deleteKeys(self, dict_del, lst_keys: list):
for k in lst_keys:
try:
del dict_del[k]
except KeyError:
pass
for v in dict_del.values():
if isinstance(v, dict):
self.deleteKeys(v, lst_keys)
return dict_del
if __name__=="__main__":
mydict= {'interface': 'ethernet', 'interfaceId': 'default', 'favorite': 'false', 'mobile': 'android', 'mobileV2': 'windows', 'type': {'mobile': 'android', 'mobileV2': 'windows'}}
bad_keys = ['mobile','mobileV2']
lib = MyLibrary()
test = lib.deleteKeys(mydict, bad_keys)
print(test)
这是机器人文件:
***Settings***
Library ./MyLibrary.py
*** Variables ***
&{type} mobile=android mobileV2=windows
&{DICTIONARY} interface=ethernet interfaceId=default favorite=false mobile=android mobileV2=windows type=&{type}
@{remove_list} mobile mobileV2
*** Test Cases ***
Filter Dictionary Values
Log \nDictionaty values... : ${DICTIONARY}
${d1_filtered}= MyLibrary.deleteKeys ${DICTIONARY} ${remove_list}
Log \nDictionaty filtered values... : ${d1_filtered}
如何使用机器人框架脚本忽略字典中的特定键?该字典是一个嵌套的 dictionary.I 尝试使用以下代码但它仅删除第一级的键。感谢任何帮助。
*** Variables ***
&{type} mobile=android mobileV2=windows
&{DICTIONARY} interface=ethernet interfaceId=default favorite=false mobile=android mobileV2=windows type=&{type}
*** Test Cases ***
Filter Dictionary Values
Log \nDictionaty values... : ${DICTIONARY} console=${True}
${d1_filtered} = Evaluate {k:v for k,v in ${DICTIONARY}.items() if k not in ('mobile','mobileV2')}
Log \nDictionaty filtered values... : ${d1_filtered} console=${True}
生成的输出日志如下。
字典过滤值...:{'interface':'ethernet','interfaceId':'default','favorite':'false','type':{'mobile':'android','mobileV2':'windows'}}
您可以创建您的库并将其导入 here. 使用这个 answer 库看起来像这样。
class MyLibrary:
def deleteKeys(self, dict_del, lst_keys: list):
for k in lst_keys:
try:
del dict_del[k]
except KeyError:
pass
for v in dict_del.values():
if isinstance(v, dict):
self.deleteKeys(v, lst_keys)
return dict_del
if __name__=="__main__":
mydict= {'interface': 'ethernet', 'interfaceId': 'default', 'favorite': 'false', 'mobile': 'android', 'mobileV2': 'windows', 'type': {'mobile': 'android', 'mobileV2': 'windows'}}
bad_keys = ['mobile','mobileV2']
lib = MyLibrary()
test = lib.deleteKeys(mydict, bad_keys)
print(test)
这是机器人文件:
***Settings***
Library ./MyLibrary.py
*** Variables ***
&{type} mobile=android mobileV2=windows
&{DICTIONARY} interface=ethernet interfaceId=default favorite=false mobile=android mobileV2=windows type=&{type}
@{remove_list} mobile mobileV2
*** Test Cases ***
Filter Dictionary Values
Log \nDictionaty values... : ${DICTIONARY}
${d1_filtered}= MyLibrary.deleteKeys ${DICTIONARY} ${remove_list}
Log \nDictionaty filtered values... : ${d1_filtered}