首页 > 解决方案 > 比较python中2个嵌套字典的值

问题描述

我正在寻找有关使用 python3 比较 json 文件并输出匹配键、值对的最佳方法的建议

我编写了 python 脚本来遍历通过几个 api 请求获取的 json 数据,然后创建 2 个带有嵌套字典和列表的新 json 文件。我创建的 2 个 json 输出基本上包含有关与 2 个不同“项目”相关的“对象”的信息——重要的是对象名称和对象标识符。嵌套字典的任意输出 json/list 通常看起来像这样:

projectA:[
        {dashboardName: "v1",
        dashboardID: "v2",
        dashbTabs:[
            {dashTabName: "v3",
            dashTabID; "v4",
            reports:[
                {reportName: "v5",
                reportID: "v6",
                metrics:[
                    {metricName: "v7",
                    metricID: "v8"
                    },
                    {metricName:v9",
                    metricID: "v10"...

等等,用于多个指标、报告和仪表板

现在我已经为 2 个项目中的每一个项目提供了上述 json 输出,我需要找出 projectA 中的任何 ID 是否与 projectB 中的 ID 相同。如果是这样,我需要知道具有匹配 ID 的对象的“路径”。

尽管非常感谢您对代码的帮助(我不是流利的编码器),但我正在寻找有关实现此目标的方法的建议。我考虑过首先将文件展平以获取所有 ID 和路径的列表,然后进行 ID 比较。或者循环遍历 projectB 中的所有 ID 并检查 projectA 中的匹配 ID。或者也许有更好/更快的方法来做到这一点?

我认为 csv 输出是有意义的,其中我有一列带有来自 projectA 的“路径”,另一列带有来自 projectB 的路径,例如

col1                                           col2  
dashboardName:v1/dashTabName:v3/reportName:v5  dashboardName:v1

请注意,在此示例中,它是 projectB 中的dashboardID,与 projectA 中的 reportID 相同

标签: jsonpython-3.xparsingdictionaryflatten

解决方案


推荐阅读