首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么jq会打印冗余和不匹配的记录,如何修复?

为什么jq会打印冗余和不匹配的记录,如何修复?
EN

Stack Overflow用户
提问于 2020-06-04 15:54:30
回答 1查看 46关注 0票数 0

我有一个json文件,其中包含六个'invoice‘对象,每个对象都是140+行值。我只想看到这六个对象中每个对象的几个值。jq似乎是一个很有前途的解决方案。

我使用的是jq version 1.5-1-a5b5cbe,它可以通过apt的常规存储库获得。

我可以执行cat stripe-invoices-list.json | jq -C '. | {invoice_id: .data[].id,}',它会返回:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "invoice_id": "in_1Gq39HFGUwFHXzvlUOGG3Rv4"
}
{
  "invoice_id": "in_1GpyM1FGUwFHXzvlio9pfaM9"
}
{
  "invoice_id": "in_1GpyHUFGUwFHXzvlHDS727su"
}
{
  "invoice_id": "in_1Gpy4HFGUwFHXzvl6k82godp"
}
{
  "invoice_id": "in_1GpjNjFGUwFHXzvl880gp0o9"
}
{
  "invoice_id": "in_1GSkk7FGUwFHXzvlfWdhcad5"
}

这是有意义的,并且工作正常。这些是六个invoice对象的id。一切都很好,尽管仅仅看到id是没有帮助的。所以..。

我尝试向输出中添加更多数据,但这会产生冗余甚至不正确的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cat stripe-invoices-list.json | jq -C '. | {invoice_id: .data[].id, client: .data[].customer_name,}'

结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "invoice_id": "in_1Gpy4HFGUwFHXzvl6k82godp",
  "client": "client_two"
}
{
  "invoice_id": "in_1Gpy4HFGUwFHXzvl6k82godp",
  "client": "client_three"
}
{
  "invoice_id": "in_1Gpy4HFGUwFHXzvl6k82godp",
  "client": "client_four"
}
{
  "invoice_id": "in_1Gpy4HFGUwFHXzvl6k82godp",
  "client": "client_five"
}
{
  "invoice_id": "in_1Gpy4HFGUwFHXzvl6k82godp",
  "client": "client_one"
}
{
  "invoice_id": "in_1GpjNjFGUwFHXzvl880gp0o9",
  "client": "client_one"
}
{
  "invoice_id": "in_1GpjNjFGUwFHXzvl880gp0o9",
  "client": "client_two"
}
{
  "invoice_id": "in_1GpjNjFGUwFHXzvl880gp0o9",
  "client": "client_three"
}
{
  "invoice_id": "in_1GpjNjFGUwFHXzvl880gp0o9",
  "client": "client_four"
}
{
  "invoice_id": "in_1GpjNjFGUwFHXzvl880gp0o9",
  "client": "client_five"
}
{
  "invoice_id": "in_1GpjNjFGUwFHXzvl880gp0o9",
  "client": "client_one"
}
{
  "invoice_id": "in_1GSkk7FGUwFHXzvlfWdhcad5",
  "client": "client_one"
}
{
  "invoice_id": "in_1GSkk7FGUwFHXzvlfWdhcad5",
  "client": "client_two"
}
{
  "invoice_id": "in_1GSkk7FGUwFHXzvlfWdhcad5",
  "client": "client_three"
}
{
  "invoice_id": "in_1GSkk7FGUwFHXzvlfWdhcad5",
  "client": "client_four"
}
{
  "invoice_id": "in_1GSkk7FGUwFHXzvlfWdhcad5",
  "client": "client_five"
}
{
  "invoice_id": "in_1GSkk7FGUwFHXzvlfWdhcad5",
  "client": "client_one"

这给出了冗余和混乱的信息。它是多余的,因为in_1GSkk7FGUwFHXzvlfWdhcad5被多次列出,并被打乱,因为一个发票与每个客户相关联。

当我在vim中打开stripe-invoices-list.json文件时,可以看到发票id in_1GSkk7FGUwFHXzvlfWdhcad5client_one相关联。

有没有人能建议是什么导致了这个问题,或者我可以采取的任何调试步骤?怎样才能让jq正确地打印出来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-04 16:03:33

这是一个常见的陷阱,您在同一个对象构造函数中扩展data两次,这会导致combinatorial explosion。下面是正确的方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.data[] | {invoice_id: .id, client: .customer_name}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62198965

复制
相关文章
你找到的LUT个数为什么和资源利用率报告中的不匹配
以Vivado自带的例子工程wavegen为例,打开布局布线后的DCP,通过执行report_utilization可获得资源利用率报告,如下图所示。其中被消耗的LUT个数为794。
Lauren的FPGA
2019/10/31
4.1K1
jq和zepto
目录 类库和框架的区别 写法 jq操作样式 属性 事件 class dom操作 效果 类库和框架的区别 jq jq是一个功能丰富,轻量级的类库 zepto.js zepto.js 是更轻量级的类库,比jq的打开速度快的多,同样兼容jq的代码 apicloud apicloud是一个框架 类库 提供了很多api,相当于一个仓库,里面有各种各样的工具,你需要用到什么就去找这些工具。 框架 相当于买了一个新房子,现在是一个空壳,需要去装修 写法 $(selector).actio
星辉
2019/01/15
2K0
EasyGBS告警记录显示的告警时间与实际的录像和快照时间不匹配问题排查
大家知道EasyGBS视频平台支持告警上报功能,并且能够在摄像头设备锁定异常情况时,进行自动拍照,上传至平台,平台进行统一记录,包括快照、告警时间等内容。
TSINGSEE青犀视频
2021/09/03
1.4K0
【错误记录】Android 分区存储 错误 ( 文件格式不匹配 )
在 Android 11 之后 , 不能使用 File 进行文件操作 , 需要使用 MediaStore 进行文件操作 ,
韩曙亮
2023/03/29
1.9K0
【错误记录】Android 分区存储 错误 ( 文件格式不匹配 )
Access不匹配查询
大家好上节介绍了重复项查询,继续介绍选择查询中的不匹配项查询,不匹配查询也是在查询向导中创建。
无言之月
2020/06/04
2K0
DNS 系列(一):为什么更新了 DNS 记录不生效?
我们在上网时如果想要访问到另一台机器上的内容,通常只需要直接输入一串地址,就能够准确访问到自己想要访问的网站。但是实际上这只是方便我们记忆的字符形式网络标识,真正让我们的机器和另一台机器进行沟通的是 IP 地址。只不过 IP 地址无论是输入还是记忆都非常麻烦,因此才诞生了域名系统。那么域名是怎么连接到那个服务器的 IP 呢?这就和我们今天要说的域名系统 DNS 有关了。
用户9996356
2022/08/25
4.8K1
记录修复SDC中的坑
我设置了get_ports input到In0的max delay。然后又设置了get_pins logic1/o到In1的max delay,那么就存在一个问题,即logic1/o处在input到In0之间,这个在STA中是不允许的。
数字IC小站
2022/08/26
8000
记录修复SDC中的坑
检测到“RuntimeLibrary”的不匹配项
错误是引用的是静态库,但是配置成动态库导致的,只需要修改成”多线程(/MT)“就可 这段错误的意思就是我调用的是静态库,但是我程序是dll动态,但是我这dll调用静态库就调用不成了吗? 解决方案如下
用户3519280
2023/07/08
1.2K0
JQ事件和事件对象
  //mouseover()/mouseout()和mouseenter()/mouseleave()的区别
用户3159471
2018/09/13
4.1K0
冗余和故障转移
高可用设计的核心思想是冗余和故障转移,具体分析下业界比较流行的高可用中间件框架的高可用实现思想。
35岁程序员那些事
2020/02/24
2.1K0
WEB打印-根据需求打印局部源码记录
这次的需求可能就比较简单了,就是实现web端的打印,但是是根据需求打印,而不是直接打印全部
何处锦绣不灰堆
2020/05/29
8520
WEB打印-根据需求打印局部源码记录
如何比较2个数组相等以及如何检出不匹配项
当我空闲的时候,我会密切地观察读者群里的一举一动,不放过他们的任何一个问题,帮助他们成长虽然不是我应尽的义务,但我的确喜欢和他们交流的感觉,毕竟能帮一个是一个。也许我的一个小小的举动,就能够他们跨越成长过程中的一大步——请给我一次骄傲的机会嘛。
沉默王二
2020/03/11
9710
数据列表如何实现单条记录部分数据的打印?
在数据列表里,数据是一条一条循环出来的,如果我们想实现打印单条数据,打印出来的每条数据都是相同的
用户10794040
2023/10/25
1930
数据列表如何实现单条记录部分数据的打印?
Google 和 Facebook 为什么不 用Docker?
写本文的起因是我想让分布式 PyTorch 程序更快的在 Facebook 的集群上启动。探索过程很有趣。也展示了工业机器学习需要的知识体系。
芋道源码
2021/05/07
9330
Google 和 Facebook 为什么不 用Docker?
偏差、方差和数据不匹配
Human-level指人类在目标问题上的error,比如人眼识别猫,人会识别错的error。
Steve Wang
2019/05/26
8980
12.12 静态文件不记录日志和过期时间
静态文件不记录日志和过期时间目录概要 配置如下 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 7d; access_log off; } location ~ .*\.(js|css)$ { expires 12h; access_log off; } 静态文件不记录日志和过期时间 在配置文件中添加 location
运维小白
2018/02/06
1.1K0
Greenplum工具GPCC和GP日志中时间不匹配的问题分析
今天同事反馈了一个问题,之前看到没有太在意,虽然无伤大雅,但是想如果不重视,那么后期要遇到的问题就层出不穷,所以就作为我今天的任务之一来看看吧。能不能定位和解决,当然从事后来看,也算是找到了问题处理的一个通用思路。
jeanron100
2018/07/26
2.1K0
Greenplum工具GPCC和GP日志中时间不匹配的问题分析
设置打印输出不缓冲
❝通过设置setvbuf函数达到打印输出不缓冲的功能,以消除输出延时。❞ 原型 int setvbuf(FILE *stream, char *buffer, int mode, size_t size); 「stream」:将缓冲区设置为文件流。 「buffer」:指向流使用的缓冲区的指针,或指向仅更改大小和模式的空指针。 「mode」:缓冲模式使用。它有以下值之一: _IOFBF 全缓冲 _IOLBF 行缓冲 _IONBF 没有缓冲 「size」:缓冲区大小。 返回为0即成功,否则失败。 使用   
Qt君
2020/04/17
2.2K0
如何使用 jq 接收 blob 数据
如何使用 jq 接收 blob 数据 ⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅 目前 jq 用的人还是挺多的,在一些简单的促销 h5 页面,用 jq 去实现一些简单的功能还是比较方便的。本文展示如何用 JQ 去请求一个 blob 对象的 img 图片并渲染到页面上 默认 jq 的 ajax 对象中的 dataType 无法设置返回资源为 blob 那么就需要手动设置,使其能够最终请求一个 blob 对象 解决办法: 使用原生 XMLHttpRequest var xhr = new XMLH
JS菌
2019/05/10
3.4K0
如何使用 jq 接收 blob 数据
点击加载更多

相似问题

为什么MySQL会获取记录,即使它与ID不匹配?

22

如何根据匹配的角度打印匹配和不匹配?

22

如何修复冗余的jQuery

20

jq条件匹配,需要打印实例名称

10

如何修复这些不匹配?

113
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文