广告
返回顶部
首页 > 资讯 > 后端开发 > Python >关于python实现json/字典数据中所有key路径拼接组合问题
  • 116
分享到

关于python实现json/字典数据中所有key路径拼接组合问题

python数据pythonkey路径拼接 2023-05-16 14:05:20 116人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

案例需求:         在已知的JSON数据或者字典数据中,获取所有key值的路径拼接值,并能够根据拼接路径获取对应的值。 示例代码: i

案例需求:

        在已知的JSON数据或者字典数据中,获取所有key值的路径拼接值,并能够根据拼接路径获取对应的值。

示例代码:

import jmespath
 
data = {
    "id": 1,
    "name": '张三',
    "age": 25,
    "grade": {
        "Chinese": 99,
        "Math": 100
    },
    "records": [
        {
            "Chinese": 98,
            "Math": 99
        },
        {
            "Chinese": 97,
            "Math": 97
        }
    ]
}
 
# 方法一:
# 下面写法是最笨的方法,当迭代次数非常多时,要写好多循环,代码量也增加了
my_list = []
for key, value in data.items():
    my_list.append(key)
    if type(value) is dict:
        for key2, value2 in data[key].items():
            my_list.append(key + '.' + key2)
print(my_list)
 
 
# 方法二(递归实现):
def get_keys_path(dict_data, enable_index=None):
    def dfs(dict_data, parent=''):
        if not isinstance(dict_data, dict):
            return
        for key, value in dict_data.items():
            if f"{key}.{value}" not in tmp_list:
                tmp_list.append(f"{parent}.{key}")
            if isinstance(value, dict):
                dfs(value, parent=f"{parent}.{key}")
            elif isinstance(value, list):
                num = 0
                for i in value:
                    if enable_index:
                        dfs(i, parent=f"{parent}.{key}[{num}]")
                        # dfs(i, parent=f"{parent}.{key}.{num}")
                    else:
                        dfs(i, parent=f"{parent}.{key}")
                    num += 1
            else:
                pass
 
    tmp_list = []
    dfs(dict_data, parent='')
    if enable_index:
        return [i[1:] for i in tmp_list]
    else:
        return [i[1:] for i in list(set(tmp_list))]
 
 
# 获取key路径组合
print(get_keys_path(data, 1))
 
# 获取key路径值
print(jmespath.search('records[1].Chinese', data))

运行结果:

到此这篇关于关于python实现json/字典数据中所有key路径拼接组合问题的文章就介绍到这了,更多相关Python数据中key路径拼接内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于python实现json/字典数据中所有key路径拼接组合问题

本文链接: https://www.lsjlt.com/news/210043.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作