def recur_data(self, data: dict, result=""): """多维/嵌套字典数据无限遍历,获取所有key层和value""" # 使用isinstance检测数据类型:字典类型 if isinstance(data, dict): for k, v in data.items(): if result == "": self.recur_data(v, k) else: self.recur_data(v, result+"_%s" % str(k)) # 列表或元组类型 elif isinstance(data, (list, tuple)): if len(data) == 1: for i in range(len(data)): # 自我调用实现无限遍历,单个不加修饰 self.recur_data(data[i], result) else: for i in range(len(data)): # 自我调用实现无限遍历,多个增加字母修饰 self.recur_data(data[i], result+"_%s" % public_tools.forward("a", i)) else: # print(result + "=" + str(data)) self.datas[result] = str(data)

运行:

if __name__ == "__main__":
    dic = {"name": "zhangsan", "address": {"sheng": "beijing", "shiji": "beijing", "shiqu": ["shijingshan", "p"], "qu": {"1dong": "1", "2dong": "2"}}}
    t = recurPostDict({})  # 传入空字典{},即datas初始值为{}
    t.recur_data(dic, result="")  # 执行过程
    print(t.datas)
    print(t.datas.keys())
    print(t.datas.values())

执行结果

python获取json数据中某个字段 python json获取指定key的value_嵌套

def params_to_line(content: str):
    col_name = []
    col_value = []
    for key, value in up_colname.items():
        if type(value) == list:
            if len(value) == 0:
            elif len(value) == 1:
                for sub_key, sub_value in value[0].items():
                    sub_key = key + "_" + sub_key
                    col_name.append(sub_key)
                    col_value.append(sub_value)
            else:
                for i in range(len(value)):
                    for sub_key, sub_value in value[i].items():
                        sub_key = key + "_" + sub_key + "_" + public_tools.forward("a", 5)
                        col_name.append(sub_key)
                        col_value.append(sub_value)
        else:
            logs.warning(f"解析参数时, 出现字符串、字典、列表以外的{type(value)}类型,无法将{key}对应的字段落库 ~")



array mongodb 聚合 spring data mongodb 聚合查询

Aggregate简介db.collection.aggregate() 是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。 db.collection.aggregate() 可以多个管道,能方便的进行数据的处理。 db.collection.aggregate() 使用了MongoDB内