比较python中2个嵌套字典的值

时间:2019-03-25 10:12:23

标签: json python-3.x parsing dictionary flatten

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

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

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的路径,然后再对ID进行比较。或者,也可以遍历projectB中的所有ID并检查projectA中的匹配ID。也许有更好/更快的方法可以做到这一点?

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

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

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

0 个答案:

没有答案