相关文章推荐
爽快的充电器  ·  java stream ...·  6 月前    · 
微笑的大象  ·  SQL - Oracle 11g - ...·  9 月前    · 
憨厚的可乐  ·  CVPR2023 ...·  1 年前    · 
酒量小的手电筒  ·  Apple macOS ...·  1 年前    · 
def dict_ordered(obj): if isinstance(obj, dict): return sorted((k, dict_ordered(v)) for k, v in obj.items()) if isinstance(obj, list): return sorted(dict_ordered(x) for x in obj) else: return obj #递归删除json/dict中的某个值 def dict_del(key,obj): if isinstance(obj, dict): if key in obj: obj.pop(key) for k, v in obj.items(): dict_del(key,v) if isinstance(obj, list): for x in obj: dict_del(key,x) else: return obj #判断json/dict中是否存在某个key def dict_has_key(key,obj): if isinstance(obj, dict): for k, v in obj.items(): if k == key: return True else: ret = dict_has_key(key,v) if ret: return True elif isinstance(obj, list): for x in obj: ret = dict_has_key(key,x) if ret: return True else: if __name__ == '__main__': tester = { "base_config":{ "enforce":{ "value":"0", "inherit":"0", "global":"0" "modify":{ "value":"0", "inherit":"0", "global":"0" "safe_control_list":{ "list":[ "gid":"0", "gname":"全网计算机", "isactive":"1", "rule_id":"0", "rule_name":"请选择规则", "time_range":"所有时间", "time_range_id":"1", "policy_tpl":"33", "policy_tpl_id":"17", "isonline":"3", "priority":"1" print(dict_has_key("rule_id",tester)) print(dict_del("policy_tpl_id",tester)) print(dict_ordered(tester)) 在使用词典 dict 时,如果不清楚其中是否 存在 某个 key ,但又想调用的话,就需要先判断一下词典 dict 中是否 存在 某个 key 了,这里简单记录一下几种方法。 一、in方法 二、get方法 一、in方法 在介绍词典 dict 的使用之前,提一下集合 set 吧,set 的特点就是无重复元素(采用 hash 算法),我们可以用非常简单快速的方法来判断其中是否 存在 某个元素,代码如下: >>> a = [1, 2, 3, 4, 5] >>> a_set = set(a) >>> 3 in a_set 上诉代码判断元素 3 是否在集合 a_set 中, 存在 返回 True,不存 Dict ionary<string, string> dict = new Dict ionary<string, string>(); string key ="a"; if( dict . Key s.Any((e)=>string.Compare(e, key )==0)==false){ dict [ key ]="1"; 2TryGetValue() Dict ionary<string, string> . 在日常自动化测试中, json 解析是经常要做的事情。但是有的 json 格式嵌套 复杂 ,如果按照顺序解析的方法,需要写非常冗长的if判断,有以下几个缺点:1、无复用性:对于其他 json 格式或者当前格式稍微修改,就需要再写一套;2、健壮性差:冗长的判断极易写错。         下面是一个原始 json 串和经过 json 解析工具(http://app.baidu.com/app/enter?appid=159 一、 python 中的字典1、字典的表示方式:{ key 1:value1, key 2:value2, key 3:value3};2、字典的 key 通常情况下是字符串,也可以使用其他不可变的数据类型;3、字典的 key 值不能重复,如果在一个字典中 存在 相同的 key ,则后面的value会覆盖前面的value;4、获取字典的长度: len()它的长度是3;5、字典的修改和添加:修改: dict _name[exited ... string =" { "status": "error", "messages": ["Could not find resource or operation 'BZK1.MapServer' on the system."], "code": 404}"print '对象:' string输出结果为:对象:{u'status': u'error', u'code': 404, 项目很多时候需要找到一个层层嵌套的 json 里面某一个或者几个 key 的值,这时候就需要遍历整一个 json 来获得这些值。 因此我封装了一个class,专门给大家来在一个 json 递归 查找需要的 key 的value, 下面给出源码(复制到自己的项目里面引入即可) 下面有介绍用法 # coding:utf8 import json class Get Key Value(object): def __... 之前在实际的项目研发中,需要对一些 复杂 json 数据进行取值操作,由于 json 数据的层级很深,所以经常取值的代码会变成类似这样: value = data['store']['book'][0]['title'] 有的甚至会比这个更长,看起来特别不舒服,而且假如原始的数据发生了一个变化,你需要针对你的代码再做一个工作量不小的适配工作,非常不方便,所以我想能否可以快速的对一串 json 数据取到想要的 key 对应的value值呢? 经过一段尝试,终于成功的解决了这个问题,其实核心思想就是将取值过程流程化,代 如下所示:dic = dict ()dic['a'] = 1dic['b'] = 2dic['c'] = 3print(dic.items())import json json s = json .dumps(dic)print( json s)结果:dic is: dict _items([('c', 3), ('b', 2), ('a', 1)]) json s: {"c": 3, "b": 2, "a": 1... #file = open("/Users/hzp/Desktop/multiwoz/data/multi-woz/delex. json ") #a = json .load(file) #b = a['SNG01856. json '] #c = open("/Users/hzp/Desktop/test. json ",'w') #c.write( json .dump...