项目很多时候需要找到一个层层嵌套的json里面某一个或者几个key的值,这时候就需要遍历整一个json来获得这些值。
因此我封装了一个class,专门给大家来在一个 json中递归查找需要的key的value ,

下面给出 源码 (复制到自己的项目里面引入即可) 下面有介绍 用法

# coding:utf8
import json
class GetKeyValue(object):
    def __init__(self, o, mode='j'):
        self.json_object = None
        if mode == 'j':
            self.json_object = o
        elif mode == 's':
            self.json_object = json.loads(o)
        else:
            raise Exception('Unexpected mode argument.Choose "j" or "s".')
        self.result_list = []
    def search_key(self, key):
        self.result_list = []
        self.__search(self.json_object, key)
        return self.result_list
    def __search(self, json_object, key):
        for k in json_object:
            if k == key:
                self.result_list.append(json_object[k])
            if isinstance(json_object[k], dict):
                self.__search(json_object[k], key)
            if isinstance(json_object[k], list):
                for item in json_object[k]:
                    if isinstance(item, dict):
                        self.__search(item, key)
        return
gkv = GetKeyValue(o={'demo': 'show demo'}, mode='j') # mode=j意味传入的object是一个json对象
gkv = GetKeyValue("{'demo': 'show demo'}", mode='s') # mode=s意味着传入的object是一个json的字符串对象
之后,假设需要查找key=demo的值:
print gkv.search_key('demo')
就可以了。
                    项目很多时候需要找到一个层层嵌套的json里面某一个或者几个key的值,这时候就需要遍历整一个json来获得这些值。因此我封装了一个class,专门给大家来在一个json中递归查找需要的key的value,下面给出源码(复制到自己的项目里面引入即可) 下面有介绍用法# coding:utf8import jsonclass GetKeyValue(object):    def __...
import json
# source code URL: https://blog.csdn.net/weixin_42744102/article/details/99722187
class FindKey(object):
    def __init__(self, obj):
        self.json_object = None
#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...
				
我们要完成的任务是输出JSON字典,并且对其的每个元素,要输出它的所有父节点。那么很容易想到的做法就是归解析。 我参考了别人的一些文章和回答,总结了如下的解决方案: from __future__ import print_function import json def dict_generator(indict, pre=None): pre = pre[:] if pre else [] if isinstance(indict, dict): for key,
这里使用归方法来取出所有想要的键 在这之前还需要把json串用json.load方法转换成python的数据结构 obj = {'北京': '北', '南极': '南', '广州': '东', '北极': '北',"四川":{"成都":""},"重庆":{"江北":""}} res_list=[] def revert_dict(obj,value): return [k for k, v in obj.items() if v == value] def iterloop(obj:
json格式文件取出所有key的通用方法(python) 在接口测试时候,我们难免会遇到接口返回关键字查验,有时由于数据量庞大,手工测试成本很高,但是接口自动化时,发现实际key嵌套比较复杂。 demo: 观察如下json,我们会发现,dic嵌套dic,list也同样嵌套dic。经过思考,最好的解决方案就是用归解决问题。在网上查了许久,没有找到合适的解决方法。自动动手丰衣足食。我给出的代码如下 { "code":0, "message":"OK", "data":{
Python ,可以使用 json 模块json.loads() 函数将 JSON 字符串转换为 Python 字典。然后可以使用字典的键访问。 ```python import json json_str = '{"name": "John", "age": 30}' data = json.loads(json_str) print(data["name"]) # "John" 如果要在项目使用 json 数据,可以使用 json.load() 函数从文件读取 json 数据。 ```python import json with open("data.json", "r") as json_file: data = json.load(json_file) print(data["name"]) # "John" 如果需要获取多层嵌套的jsonkey,可以通过归的方式获取. ```python import json def get_value_by_key(json_data,key): if type(json_data) is dict: for k,v in json_data.items(): if k==key: return v else: return get_value_by_key(v,key) elif type(json_data) is list: for item in json_data: return get_value_by_key(item,key) else: return None json_str = '{"name": "John", "age": 30,"hobby":{"sport":"basketball"}}' data = json.loads(json_str) print(get_value_by_key(data,"sport")) # "basketball" 解决报错:“Couldn‘t find a valid ICU package installed on the system. Set the configuration flag System.” 13175 Keras ValueError: No data provided for "dense_1_input". Need data for each key in: ['dense_1_input'] 酒732: 在R语言里出现这种错误怎么办呢,谢谢