json - 比较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 相同
解决方案
推荐阅读
- opencv - OpenCV检测交通灯绿色信号
- javascript - javascript修改动态加载的弹出元素的内容
- python - 特征选择的FCBF方法
- python - 在windows上通过python调用使用linux子系统编译的程序
- java - 使用 @Transactional 注释在类中更新实体
- c++ - Valgrind 在 C++ 代码中显示意外输出
- hyperledger-composer - 在超级账本作曲家 Node.js SDK 中收到的事件非常冗长
- c# - Azure Web App ASP Razor 预编译视图错误
- python - 无法创建虚拟环境
- dns - CNAME 正在重定向到我的主机页面