使用JQ用同一词典中的另一个值替换一个值

格里利

给定以下JSON文件foo.js(为清楚起见,将其删除):

{"a":{"b":[{"x":{"x1":1},"y":{"y1":5}},{"x":{"x1":1},"y":{"y1":6}}]}}

我想用对应的y1替换x1的值。也就是说,我最终会遇到:

{"a":{"b":[{"x":{"x1":5},"y":{"y1":5}},{"x":{"x1":6},"y":{"y1":6}}]}}

这将替换值,但仅返回修改后的字典,而不返回完整的JSON文件:

% jq -Mc '.a.b[] | .x.x1 = .y.y1' foo.js
{"x":{"x1":5},"y":{"y1":5}}
{"x":{"x1":6},"y":{"y1":6}}

这可以用恒定值替换x1:

% jq -Mc '(.a.b[] | .x.x1) |= 9' foo.js
{"a":{"b":[{"x":{"x1":9},"y":{"y1":5}},{"x":{"x1":9},"y":{"y1":6}}]}}

但是,尝试使用相同的想法是行不通的:

% jq -Mc '(.a.b[] | .x.x1) |= .y.y1' foo.js
jq: error (at foo.js:1): Cannot index number with string "y"
杰夫·梅卡多(Jeff Mercado)

差不多了 用这个:

.a.b[] |= (.x.x1 = .y.y1)

我们要更新.a.b数组中每个项目.x.x1的值.y.y1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用另一个数据框的值替换一个数据框的列值

用另一个Spark Java替换一个列值

如何在Scala中用另一个Seq中的值替换一个Seq中的值?

用另一个数据框的值替换一个值

用熊猫中另一个时间序列的值替换一个时间序列的值

JQ:用另一个文件中的对应值替换键

从另一个数据框中替换一个数据框中的值

比较2个文件的列,用另一个文件中1个列的值替换一个文件中不同列的值

用另一个词典的值替换一个词典的值

用同一位置的另一个矩阵的NA替换一个矩阵中的值

用另一个数据框中的值替换一个数据框中的值-Regex

如何用另一个文件的值替换一个文件的值?

从另一个列表替换一个列表中间的值

根据另一个df中的特定索引替换一个df中的值

用另一个数据框中的值替换一个数据框中的逗号分隔值

用R中的另一个矩阵替换一个矩阵

用R中另一个数据框的值合并和替换一个数据框的值

根据另一个数组中的值替换一个数组中的值

用另一个数据框(不是合并)引用的值替换/替换一个数据框中的所有值

熊猫用另一个数据框的值替换一个数据框的值

用另一个变量的值替换一个变量中的NA

如何用另一个表中的相应值替换一个表中的ID?

用另一个数据框的值替换一个数据框的列中的值

用BeautifulSoup中的另一个标签替换一个标签

用文件中的另一个单词替换一个特定的单词

用另一个数组的相同索引的值替换一个数组中的值?

用另一个向量的条件替换一个向量的多个值

用另一个 DF 中的值替换一个 DF 中的 NA

从另一个 data.table 替换一个 data.table 中的值