【问题标题】:to transform output of JSON based on the no.of names根据名称转换 JSON 的输出
【发布时间】:2021-06-14 21:17:31
【问题描述】:

输入是从卡中提取的数据。 发现很难提取,特别是因为 0.jpg 是根据图像名称动态生成的

.doc.0.jpg 变为无效,因此无法获取 0.jpg 以下的值

"doc": {
    "0.jpg": {
      "cNumber": "6218961 450 3875",
      "cNames": " 1 VEN NUT 2 SIRKA SARTH",
      "cExpiry": "09/2025"
    },
    "number": {
      "nTotal": 3,
      "nRequires": 3,
      "nDocuments": 1
    }
  }

我应该能够根据 cNames 中的数字提取名称

输出应该是

"doc": {
    "0.jpg": {
      "cNumber": "6218961 450 3875",
      "cNames": [ "VEN NUT",
                  "SIRKA SARTH"],
      "cExpiry": "09/2025"
    },
    "number": {
      "nTotal": 3,
      "nRequires": 3,
      "nDocuments": 1
    }
  }

【问题讨论】:

  • 当您像在 cmets 中那样 ping 用户时,不会通知用户 - 这是一件好事。您不需要任何特定的用户来帮助您;如果你问一个好问题,你会得到很多人的答案。不过,目前这不是一个好问题,它似乎只是要求有人为您完成这项工作。
  • @BenjaminW。是的,我试图弄清楚 jq 是如何工作的......所以我的问题对于专家来说可能看起来很愚蠢
  • 我可以看到两种方法可以改善您的问题:删除所有无关的内容;你真的很想知道“我怎样才能把这个字符串转换成jq中的一个数组,根据以下规则:...?”其次,如果你可以展示你尝试过的东西,你的结果是什么以及它与你想要的有什么不同,那么这个问题看起来更像是你解决问题的一部分,而不是其他人的工作指令.

标签: jquery regex jq


【解决方案1】:
.doc |= map_values(if has("cNames")
                   then .cNames |= [splits(" *[0-9]+ *")][1:]
                   else . end)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    相关资源
    最近更新 更多