JQ:将键替换为另一个文件中的相应值

2023-12-01

我正在尝试将原始 JSON 中的键值替换为另一个文档中具有相应键的对象的值。

这是我的两个文件: 文件一:

{
    "-KaM0otlgWxXniYiacFe": {
        "-LNxx1IiX6oYTxJ4IXx2": true
    },
    "-KlJTvbfonIMI_-YfS5R": {
        "-LNxx1IbaB-yrZ623hrX": true
    }
}

File 2:

{
    "-KaM0otlgWxXniYiacFe": {
        "a": "-L-b__nH9PlMcz0stDDE",
        "b": "-L7ZNKSZy570TlrQUzHM",
        "c": "-Kaae3MsQUyViCKPs8Iv"
    },
    "-KlJTvbfonIMI_-YfS5R": {
        "a": "-LAlXKfUUTdYDeCZH-u-",
        "b": "-L7ZNKSTnob7w0HXjHr6",
    "    c": "-KYYicPD7VA9DEF_rus3"
    }
}

目标是创建 3 个新文件,其中每个文件中的原始键已替换为 a、b 和 c 的值。

针对“a”时期望的结果:

{
    "-L-b__nH9PlMcz0stDDE": {
        "-LNxx1IiX6oYTxJ4IXx2": true
    },
    "-LAlXKfUUTdYDeCZH-u-": {
        "-LNxx1IbaB-yrZ623hrX": true
    }
}

我尝试过使用以下内容:

cat file1.json | jq --slurpfile file2 file2.json '| map(with_entries(.key = .file2[.key].a'

但我感觉很无能,因为我以前没有使用过 jq。

任何帮助表示赞赏。

Update:

如果文件 1 中的密钥可能不存在于文件 2 中,从而导致“无法使用 null (null) 作为对象密钥”,我该如何处理?


不是 jq 方面的专家,但这是我得出的结论:

jq --arg k a --argfile file2 file2.json 'with_entries(.key |= $file2[.][$k])' file1.json > out_a.json

Change --arg k a and out_a.json对于其他密钥和输出文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQ:将键替换为另一个文件中的相应值 的相关文章

  • 改造2:使用json对象发送文件

    我在请求正文中发送对象 如下所示 title test description test images POST create data Call
  • 使用 Python 将 Json 转换为换行 Json 标准

    我有一个获取嵌套对象并删除所有嵌套的代码 使对象平坦 def flatten json y param y Unflated Json return Flated Json out def flatten x name if type x
  • MySQL 8 用逗号分割字符串并将其转换为JSON ARRAY

    我有以下字符串 a b c d 我想将它转换成一个 json 数组 像这样 a b c d MySQL 8 有什么函数可以实现这个功能吗 Try SELECT CAST CONCAT REPLACE a b c d AS JSON See
  • jQuery 解析 JSON

    当我尝试解析 JSON 验证的字符串时收到此错误 JSON parse 意外字符 当我删除需要转义的字符 style width 400px 时 它完美地工作 我缺少什么 在使用 parseJSON 之前是否有一种独特的方法来转义字符 va
  • 如何阅读网站内容?

    我是使用 python 2 7 的网络爬虫的新手 一 背景 现在 我想收集有用的数据AQICN org http aqicn org city shenyang usconsulate 这是一个很棒的网站 提供世界各地的空气质量数据 我想用
  • PyQt:数据不可 JSON 序列化

    我是 PyQt GUI 的新手 我想获取a的数据QLineEdit文本框 为此我正在使用text 方法 我正在获取数据 但数据类型是QString 我需要将其作为 json 数据传输到服务器 为此我使用json dumps 方法 但我收到错
  • 双向链表转 JSON

    我有一个三维结构 实际上是一个具有六个节点的双向链表 即左 右 上 下 进 出 如果一个节点位于另一个节点的右侧 那么该节点将毫无疑问位于第一个节点的左侧 喜欢 实际上这是一个 3D 结构 但为了便于理解 我给出了一个 2D 示例 现在我必
  • 将 JSON 数据导入 Google 表格

    我从 Web 服务中提取数据 其格式为 JSON 我正在为 Google Sheets 编写一个 Google Apps 脚本 它将为我填充数据 我的问题是 我似乎无法解析它 Doing var dataset myJSONtext Bro
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • 在 Play2 和 Scala 中解析没有数据类型的 JSON

    people name Jack age 15 name Tony age 23 name Mike age 19 这是我试图解析的 json 示例 我希望能够对每个人进行 foreach 操作并打印他们的姓名和年龄 我知道当 json 数
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • 如何使用 tqdm 实现 JSON 文件加载进度条?

    我正在编写一个用于 JSON 文件处理的 Python 脚本 它基本上分为三个过程 加载 编码和打印 虽然我已经使用 tqdm 轻松创建了用于编码和打印的进度条 但我不知道如何进行加载 我已经彻底阅读了 tqdm 文档 甚至在这里进行了搜索
  • 如何在 MySQL 查询本身中检索 JSON 数组中存储的值?

    我有下表 product id product name image path misc 1 flex http firstpl course level id 19 group id 40067 2 Android http firstp
  • AngularJS - 从数据中删除 \n

    捕获和格式化从服务器传递的文本内部以显示换行符的最佳方法是什么 小提琴在这里 http jsfiddle net nicktest2222 2vYBn http jsfiddle net nicktest2222 2vYBn scope d
  • 使用 swagger-ui-express 和 swagger-jsdoc 时如何在 swagger 文件中正确使用 $ref

    我开始使用 swagger 与swagger ui express and swagger jsdoc自动记录我现有的 API 它是用nodejs并表达 就像这里描述的那样 example http www acuriousanimal c
  • Moxy、JSON 和 Jersey 2.0 不会反序列化纯字符串数组

    在我当前的设置中 我使用 Jersey 2 0 和 MOXy 如中所述球衣文档 https jersey java net documentation latest media html json moxy 我完全依赖于 自动发现的功能 所
  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • 将 JSON 文件拆分为单独的文件

    我有一个大的 JSON 文件 它是对象的对象 我想将其拆分为对象键后的单独文件名 是否可以使用 jq 或任何其他现成工具来实现这一目标 原始 JSON 格式如下 item1 item2 鉴于此输入 我想生成文件 item1 json ite

随机推荐

  • 比较两个字符串数组而不通过每个元素进行索引的最佳方法是什么?

    是否有任何有效的方法可以用于比较两个字符串数组而无需检查每个元素 我尝试使用数组列表 构建对象 但没有一个没有显示出太大的效果 最后 要比较两个字符串 序列 表示字符序列 没有任何提高效率的技巧 你必须somehow遍历两个序列并逐个元素进
  • jQuery 根据文本更改表格单元格文本颜色

    我有一个表 其中包含包含状态的数据列 两个示例状态为 已拒绝 和 已付款 我想要做的是将 已拒绝 的文本颜色更改为红色 将 已付费 的颜色更改为绿色 对于具有此状态的单元格 我向td like td class status Html Di
  • TextView 的 Android 自定义属性[重复]

    这个问题在这里已经有答案了 可能的重复 如何读取Android中的自定义属性 最近我读到了有关自定义属性的内容 我想向 TextView 添加自定义属性 到目前为止我有 属性文件
  • 如何在 C++ 中声明和初始化 2d int 向量?

    我正在尝试做类似的事情 include
  • 笑话:如何模拟类的一个特定方法

    假设我有以下课程 export default class Person constructor first last this first first this last last sayMyName console log this f
  • Swift 5.5 AttributedString 不显示在界面中

    下面是 Swift 5 5 制作属性字符串的方法 let s Hello var attrib AttributedString s if let range attrib range of ell attrib range foregro
  • MongoDB 插入无重复项

    现在我正在运行 mongodb 我刚刚意识到 我正在插入集合 但我不确定是否可以防止重复 这是我插入的方式 function insertCompanies companyID companyURL companyAppID MongoCl
  • 带有 TabBar 的基于导航的应用程序

    我有一个基于导航的应用程序 它显示一个 TableView 您可以在其中选择一个单元格 然后它会将您带到该单元格的 详细信息视图 我希望这个视图有一个 TabBar 我可以在其中在 3 个子视图之间进行选择 我在网上找到了几个解决方案 但没
  • 如何避免在拖动具有可点击内容的 gridster.js 小部件后触发点击事件?

    我正在使用 Gridster http gridster net 能够将内容拖动到li 在我的li有一个可点击的div li a href div content div a li 所以这是我面临的问题 当我停止并释放拖动时 它将调用 di
  • 如何迭代 JSON 属性而不知道它是否是数组?

    我遇到这样的问题 API 使用 DEPARTURESEGMENT 响应我 有时仅包含一个对象 有时包含一组对象 根据具体情况 我的 foreach 循环似乎需要不同的逻辑 回应A getdeparturesresult departures
  • 原则 2 限制与 DQL 的关联

    Doctrine 2 1 中似乎存在一个疏忽 即返回子集并不容易 为协会收集 http www doctrine project org docs orm 2 1 en reference limitations and known iss
  • 如何从超类创建子类的实例?

    我正在创建一个类及其子类 其中需要调用父类的静态方法以返回子实例 class Animal static findOne this has to return either an instance of Human or an instan
  • 如何避免使用自动 Code First 迁移重新创建现有数据库

    我正在使用 EF6 并且遇到数据库自动迁移问题 数据库存在 并且数据库中没有架构或数据更改 但由于某种奇怪的原因 应用程序似乎试图在机器重新启动时在数据库中重新创建现有表 并因此导致错误 我的问题是 为什么在没有数据库架构更改的情况下会自动
  • 单击剧作家中的浏览器权限弹出窗口,无需 grantPermission

    我正在尝试和剧作家一起写测试 我的应用程序使用摄像头和麦克风 所以 我允许他们使用context grantPermissions camera microphone 它适用于 Chrome 但不适用于 Firefox 和 Safari 尚
  • Android volley 处理重定向

    我最近开始使用 Google 的 Volley lib 来处理我的网络请求 我的一个请求收到重定向错误 301 所以我的问题是 volley 是否可以自动处理重定向 或者我是否必须手动处理它parseNetworkError或使用某种Ret
  • 将 gprof 与 pthread 结合使用

    gprof 可以用来分析使用 pthread 的多线程程序吗 也就是说 它的输出是否包括所有线程所使用的时间 是的 借助所描述的解决方法是可能的here
  • 如何将类转换为 Dictionary

    我可以将 Class 转换为 Dictionary 吗 在字典中我希望我的类属性为keys以及特定财产的价值value 假设我的班级是 public class Location public string city get set pub
  • JavaScript 减少两个以上项目的抛出错误

    我有这个数组 const arr someProp amount 10 someProp amount 12 然后减少 fn const sum arr reduce prev curr gt prev someProp 0 amount
  • 使用 awk 最长的行

    有人可以展示如何使用 awk 命令来识别文本文件中最长的行 Thanks 要打印最长的行 awk length gt m m length a 0 END print a input file 简单地通过行号来识别最长的行 awk leng
  • JQ:将键替换为另一个文件中的相应值

    我正在尝试将原始 JSON 中的键值替换为另一个文档中具有相应键的对象的值 这是我的两个文件 文件一 KaM0otlgWxXniYiacFe LNxx1IiX6oYTxJ4IXx2 true KlJTvbfonIMI YfS5R LNxx1