在 jq 中“转置”对象

2023-12-21

我不确定“转置”在这里是否是正确的术语,但我希望使用jq转置一个二维对象,如下所示:

[
    {
        "name": "A",
        "keys": ["k1", "k2", "k3"]
    },
    {
        "name": "B",
        "keys": ["k2", "k3", "k4"]
    }
]

我想把它改成:

{
    "k1": ["A"],
    "k2": ["A", "B"],
    "k3": ["A", "B"],
    "k4": ["A"],
}

我可以用以下方法拆分对象.[] | {key: .keys[], name}获取键和名称的列表,或者我可以使用.[] | {(.keys[]): [.name]}获取键值对的集合{"k1": ["A"]}等等,但我不确定这两种方法的最终串联步骤。

这些方法中的任何一个都朝着正确的方向发展吗?有没有更好的办法?


这应该有效:

map({ name, key: .keys[] })
    | group_by(.key)
    | map({ key: .[0].key, value: map(.name) })
    | from_entries

基本方法是将每个对象转换为名称/密钥对,按密钥重新组合它们,然后将它们映射到对象的条目。

这会产生以下输出:

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

在 jq 中“转置”对象 的相关文章

  • 从 JSON 文件注入的编译指令 AngularJS

    希望有人能帮助我应对这一挑战 我使用以下命令从服务器请求 JSON 数据 http get 来自服务器的数据返回一个对象 对象中的一个值包含 HTML 标记 该标记使用以下方式注入到页面中 div div 在标记内 有一个名为的自定义指令
  • init 后用 JSON 填充 select2 不起作用

    我正在尝试使用 JSON 数组填充 select2 元素 但我无法得到它 我有下一个数组 data id Foo text Foo id Bar text Bar 我初始化 select2 如下 selectElement select2
  • SQL Server 抱怨无效的 json

    我正在使用 Azure 数据工厂和 Azure SQL 数据库编写 ETL 工具 数据工厂捕获映射数据流的输出并将其作为字符串插入到 SQL Server 表 Audit OperationsEventLog 的 StatusMessage
  • 用于检查 Apache Camel XML 中字符串的 JSONPath 表达式

    假设我有一个简单的 json 文件 如下所示 log host blah severity INFO system 1 我正在使用 Apache Camel 它是 Spring XML 来处理和路由 json 文件 我的路由代码看起来像这样
  • 将 JSON 反序列化为表

    我需要根据通过 API 接收的数据填充 ABAP 中的表 我正在使用以下 ABAP 函数从 json 填充现有的 ABAP 表 JSON 是正确的 表中包含相应的表 ui2 cl json gt deserialize EXPORTING
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • 如何从 JSON 响应重定向?

    所以我尝试使用 Flask 和 Javascript 上传器 Dropzone 上传文件并在上传完成后重定向 文件上传正常 但在烧瓶中使用传统的重定向 return redirect http somesite com 不执行任何操作 页面
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du
  • 通过 json 模式 Sequelize 定义模型

    我想通过json制作Sequelize模型广告 我在文档中找不到是否可以通过 json 模式进行模型声明 对于这么强大的库 没有这样的功能很奇怪 也许我找错地方了 只是试图找到同一问题的答案 模式示例 类型 对象 模式 http json
  • 在 Node.js 中解析 Json(带有数组和对象)并将数据导出到 Excel 文件中

    我是 Node js 新手 我的要求是 我需要解析 JSON 并将数据导出到 Excel 文件中 其中包含 JSON 中的所有字段 我的 JSON 如下 id 1255 title The Brain and Nervous System
  • Ruby on Rails 服务器在 HTTPS POST 请求期间崩溃

    我正在尝试与你沟通城市飞艇API http urbanairship com docs push html broadcast使用 ROR Web 应用程序 在我的控制器中 我有以下代码 require net http require n
  • 使用 NewtonSoft 在一行中生成 JSON 对象

    我正在使用 JSON 库牛顿软件 http nuget org packages newtonsoft json生成 JSON 字符串 JObject out JObject FromObject new typ photos return
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • jolt变换后json对象的排序

    Input The input json object 所需输出 Event1 Value1 Event2 collection of json objects Event3 The input json object 所以基本上输入 js
  • 在 ASP.NET Core 2.0 Web Api 中返回“原始”json

    AFAIK 在 ASP NET Core Web Api 中返回数据的标准方法是使用IActionResult并提供例如一个OkObject结果 这对于对象来说效果很好 但是如果我以某种方式获得了一个 JSON 字符串 并且我只想将该 JS
  • Haskell Data.Decimal 作为 Aeson 类型

    是否可以解析一个数据 十进制 https hackage haskell org package Decimal 0 4 2 docs Data Decimal html使用 Aeson 包从 JSON 获取 假设我有以下 JSON foo
  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • JSON 解析错误:需要“STRING”

    我在用JSONLint http jsonlint com 解析一些 JSON 我不断收到错误 错误 第 1 行解析错误 产品 需要 STRING 却得到 未定义 这是代码 product code Abc123 description S
  • 无法将数据加载到 mvc 4 中的 jTable 中

    好的 我第一次尝试 jTable 我可以加载表 但这对我没有什么好处 因为它不会加载我的任何数据 当我调试程序时 我想要的表中的所有行都存储在我的列表中 因此我很困惑为什么当我运行应用程序时会弹出一个对话框 显示 与服务器通信时发生错误 H

随机推荐

  • 机械化 br.click_link() 和 br.follow_link() 之间的区别

    我正在使用 mechanize 来自动化一些表单提交 为此 我需要转到某个网站的主页 单击包含特定文本的链接 该链接会将我重定向到另一个页面并在新页面中填写表格 我尝试使用 response br follow link text rege
  • 在 Gradle 4.1 中更改 apk 输出文件夹

    我想更改APKoutput folder这就是我以前所做的 applicationVariants all variant gt variant outputs all def filePath rootProject rootDir ab
  • 网络字体并提供后备字体

    使用时web fonts using font face我想知道使用后备字体的推荐方法是什么 例如 如果我使用的是粗体网络字体 例如 font face font family OpenSansBold src url fonts Open
  • 使用 html5 音频读取文本时向上滚动并隐藏它

    我正在使用代码来突出显示使用 html5 音频读取的文本单词 并且在单击相邻句子时也会读取音频 我需要的是使正在读取的行从页面中消失 并且正在读取的下一行跳转到其位置 依此类推 所以到最后页面中什么都没有留下 但是 1 音频播放器 2 突出
  • 未找到名为“debug”的 KotlinJvmAndroidCompilation

    我正在尝试将我的项目更新到最后一个 gradle v6 2 2 但我遇到了下一个错误 A problem occurred configuring project app gt Failed to notify project evalua
  • 以编程方式为 Lotus Notes 创建约会

    我需要创建一个约会 日历条目 并将其自动分发给某些受邀者 我现在有两个问题 1 日历条目未出现在主席的日历上 我已经通过将主席添加为必需的与会者来解决此问题 这会向他们发送确认通知 但我想知道如何自动添加它 2 已向受邀者发送邀请 但无法确
  • python 检查html是否有效

    如何使用Python检查HTML代码的有效性 我需要关闭标签检查 并在标签参数中使用大括号 例如 a href xxx 和其他可能的验证 我可以使用哪些库 嗯 这并不完全是您想要的 但是为了验证我所工作的网站的 HTML 我要求 W3C 验
  • 模板类型推导失败(std::empty 作为谓词)

    我有一个向量向量 我想检查它们是否全部为空 使用标准库 我尝试过 include
  • 历史前进/后退按钮不适用于 Angular 2 路由器

    历史记录 推送状态 前进 后退按钮不适用于 Angular 2 路由器 我已经在 Chrome 和 Firefox 中对此进行了测试 前进按钮永远不会起作用 后退按钮仅起作用 2 个步骤 而 UI 不会根据后退按钮进行响应 我有以下代码 应
  • 通过存储在字符串中的名称调用方法而不使用反射 API?

    我知道 使用 Reflection API 我们可以通过存储在字符串中的名称来调用方法 但是 Reflection API 不能用于高性能应用程序 在我的应用程序中 方法将以非常高的速率被调用 所以 我不能使用Reflection API
  • VS Code Jupyter Notebook Markdown 显示字体

    Is there some way to modify the font in which the rendered markdown cell is displayed in VS Code s Jupyter Notebook I ha
  • ColdFusion 2016 上的 CGI.REDIRECT_URL 为空

    我正在将一个站点迁移到 Linux Apache 上的 ColdFusion 2016 但我们遇到的一个问题是CGI REDIRECT URL值为空 我检查了一下 以下是在 etc apache2 mod jk conf file JkEn
  • Assembly.CreateInstance 和安全性

    我正在考虑使用 C 按需编译代码的能力作为脚本语言的基础 我想知道 如何对正在执行的脚本进行沙箱处理 以便它们无法访问文件系统 网络等 基本上 我想要对正在运行的脚本进行限制权限 我采取的步骤 CompilerResults r CShar
  • 有没有办法使对象只能由访问特定方法的第一个线程使用?

    我想要一个可以由任何线程创建的对象 但是当线程调用时myObject use 它只能由该线程使用 直到myObject release 叫做 我不想强迫开发人员必须将此对象 类的所有方法调用包装在同步块中 我知道可以用来近似此功能 因为如果
  • 我可以阻止 mobile safari 在 iPod touch 或 iPhone 上自动旋转屏幕吗?

    我们有一个离线 Safari 应用程序 其 UI 专为垂直使用而设计 像素完美 我们希望无论用户如何旋转 iPod iPhone UI 都保持垂直 Safari 离线应用程序可以吗 这个问题与我可以阻止 mobile safari 在 iP
  • 在 PHP 中将字符串解析为数组

    我是 PHP 新手 找不到正确的答案 whatever array Test Blah echo parsed 2 This will be Blah 我想创建一个名为的变量 parsed其中包含 whatever的值 但作为有效的数组而不
  • R 中 Copula 包的 loadNamespace 错误

    我已经在 R 中创建了一个模型 我需要使用copula其中涉及使用 copula 包 我在完全更新的 MacBook Pro 上使用最新版本的 R 我可以安装 copula 包 但是当我尝试打开library copula 我收到以下错误
  • Java 中非阻塞 UDP I/O 与阻塞 UDP I/O

    非阻塞 TCP IPSocketChannels and SelectorNIO 帮助我用少量线程处理许多 TCP IP 连接 但是 UDP 怎么样 DatagramChannels 我必须承认我对UDP不是很熟悉 UDP 发送操作似乎不会
  • __attribute__((weak)) 和静态库

    我想在我的代码中引入一个弱符号 但是 当使用 a 文件时我无法理解它的行为 这是我的最小例子 文件a h void foo attribute weak 文件 a c include a h include
  • 在 jq 中“转置”对象

    我不确定 转置 在这里是否是正确的术语 但我希望使用jq转置一个二维对象 如下所示 name A keys k1 k2 k3 name B keys k2 k3 k4 我想把它改成 k1 A k2 A B k3 A B k4 A 我可以用以