小编pea*_*eak的帖子

使用jq从多个输入对象生成单个JSON数组

我确实有几个类似的JSON对象(例如,在文件中):

file_1.json: {"myArray":[{a},{b}]}
...
file_n.json: {"myArray":[{n},{m}]}
Run Code Online (Sandbox Code Playgroud)

我想使用jq和Linux或Windows命令行工具将所有这些文件转换为以下格式的一个输出:

result_file.json: [{a},{b},...,{n},{m}]
Run Code Online (Sandbox Code Playgroud)

因此,我只想要一个具有所有对象的数组,这些对象可以在“ myArray”数组中从不同的输入中找到。

当前,我使用此命令来分隔对象,但不创建包含它们的数组:

type file_1.json file_n.json | jq ".result[]" > result_file.json
Run Code Online (Sandbox Code Playgroud)

(在Linux上用cat替换类型)

如何获得正确的格式?

arrays json jq

0
推荐指数
1
解决办法
478
查看次数

使用 JQ 从一组字符串中获取唯一字符串

我有从 jq 中提取的字符串,我只想从中获取唯一值。

"a-b-c-v001"
"a-b-c-v002"
"a-b-c-v001"
"a-b-c-v003"
"a-b-c-v002"  
Run Code Online (Sandbox Code Playgroud)

我只需要 3 个结果,独一无二

"a-b-c-v001"
"a-b-c-v002"
"a-b-c-v003"  
Run Code Online (Sandbox Code Playgroud)

我试过 unique & sort 没有用 - https://jqplay.org/s/xjND6Iv60T

json unique stream jq

0
推荐指数
1
解决办法
2889
查看次数

使用jq递归从JSON文件获取键名

我可以使用jqas 获得顶级JSON密钥

jq 'keys'
Run Code Online (Sandbox Code Playgroud)

例如,看到以下问题:使用jq从JSON文件获取键名

我可以在中启用递归jq

jq '..'
Run Code Online (Sandbox Code Playgroud)

如:按键递归搜索值

但是jq '.. | keys'回报jq: error at <stdin> string has no keys

recursion json key jq

0
推荐指数
1
解决办法
1109
查看次数

使用jq使用空格导出环境变量

所以,我正在尝试导出一个来自api的环境变量,它返回json值.想使用jq只做一个衬垫,但如果值有空格我不能让它工作

尝试不包围引号中的值

/app/src $ $(echo '{"params":[{ "Name":"KEY","Value":"value with space"}]}' | jq
 -r '.params[] | "export " + .Name + "=" + .Value')
/app/src $ printenv KEY
value
/app/src $ 
Run Code Online (Sandbox Code Playgroud)

接下来,我尝试将值包装在引号中

/app/src $ $(echo '{"params":[{ "Name":"KEY","Value":"value with space"}]}' | jq
 -r '.params[] | "export " + .Name + "=\"" + .Value + "\""')
sh: export: space": bad variable name
/app/src $ 
Run Code Online (Sandbox Code Playgroud)

bash environment-variables jq

0
推荐指数
1
解决办法
846
查看次数

当我的输出 json 中存在 uri 字段时,如何使用 jq 给出 true 或 false

我有一个像这样的 JSON:

{
   "results":[
      {
         "uri":"www.xxx.com"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

编辑 当 uri 不存在时,JSON 如下所示:

{
"results":[

]
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,uri 存在,而在某些情况下,则不存在。现在,如果 uri 存在与否,我想使用 jq 返回布尔值。

这是我到目前为止所写的内容,但尽管 uri 存在,但它给出了 null。${search_query_response} 包含 JSON

file_status=$(jq -r '.uri' <<< ${search_query_response})
Run Code Online (Sandbox Code Playgroud)

任何人都可以指导我吗?

bash json jq

0
推荐指数
1
解决办法
438
查看次数

jq:如何更改 JSON 的结构以避免笛卡尔积?

我有很薄的 JSON 输入:

[
  {
    "x": [
      "2020-02-24T00:00:00",
      "2020-02-25T00:00:00",
      "2020-02-26T00:00:00"
    ],
    "y": [
      3,
      2,
      6
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

我想获得:

[
  {
    "a": "2020-02-24T00:00:00",
    "b": 3
  },
  {
    "a": "2020-02-25T00:00:00",
    "b": 2
  },
  {
    "a": "2020-02-26T00:00:00",
    "b": 6
  }
]
Run Code Online (Sandbox Code Playgroud)

如果我申请,.[]|{a:.x[],b:.y[]}我将获得笛卡尔积(9 项)。

如何更改此 JSON 的结构以避免笛卡尔积?

json cartesian-product jq

0
推荐指数
1
解决办法
40
查看次数

使用 jq 将字符串列表转换为 JSON 数组

有一个字符串列表(每行一个),比​​如

str1
str2
...
Run Code Online (Sandbox Code Playgroud)

如何将这些转换为 JSON 列表["str1", "str2"]

string json jq convertto-json

0
推荐指数
1
解决办法
44
查看次数

使用 jq/bash 比较两个 JSON 文件并仅保留匹配

我有两个文件(我只复制其中的一小部分,因为它们相当大):

_titles2.txt:(小样本)

{
  "titleId": "0100000000010800"
}
{
  "titleId": "010000000EEF0800"
}
{
  "titleId": "0100000011D90800"
}
{
  "titleId": "010000001260E800"
}
{
  "titleId": "01000000160F6800"
}
{
  "titleId": "010000100C4B8800"
}
Run Code Online (Sandbox Code Playgroud)

titles.json(同样只是一个小样本)

{
    "1": {
        "bannerUrl": null,
        "category": null,
        "description": null,
        "developer": null,
        "frontBoxArt": null,
        "iconUrl": null,
        "id": "0100000000000816",
        "intro": null,
        "isDemo": null,
        "key": null,
        "languages": null,
        "name": null,
        "nsuId": null,
        "numberOfPlayers": null,
        "publisher": null,
        "rank": 34342,
        "rating": null,
        "ratingContent": null,
        "region": null,
        "regions": null,
        "releaseDate": null,
        "rightsId": null,
        "screenshots": null,
        "size": 0,
        "version": null …
Run Code Online (Sandbox Code Playgroud)

bash json inner-join jq

0
推荐指数
1
解决办法
171
查看次数

合并两个文件并排序

我想将两个文件合并为一个文件,并根据第二列的值对它们进行排序。示例如下:

文件 1:

+ 1.01 id 120
- 1.20 id 145
+ 2.15 id 411
(continues)
Run Code Online (Sandbox Code Playgroud)

文件2:

r 0.21 id 4
r 1.78 id 85
r 102 id 850
(continues)
Run Code Online (Sandbox Code Playgroud)

我想将它们合并到一个文件中,但我想根据第 2 列将它们按升序排列,如下所示:

文件 3:

r 0.21 id 4
+ 1.01 id 120
- 1.20 id 145
r 1.78 id 85
+ 2.15 id 411
r 102 id 850
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

sorting awk

-2
推荐指数
1
解决办法
42
查看次数

如何将此json展平为tsv?

我想将此 JSON 压缩为 tsv 文件。

https://www.vi4io.org/assets/io500/2019-06/data.json

问题是每个条目({} 的第一级)都有许多字段/子字段。我不想指定这么多字段名称。并且不能保证所有条目的字段/子字段都相同。因此,我希望结果列包含所有字段/子字段的联合。列名称的顺序应尽可能接近原始 json 文件。(例如,同一字段中的那些子字段应一起列在 tsv 中)。

将此json文件转换为tsv的最佳方法是什么?谢谢。

csv json flatten export-to-csv jq

-2
推荐指数
1
解决办法
349
查看次数

使用 awk 或 jq 获取 json 值

我的 json 文件看起来像这样。

我有超过 5000 个文件:文件名:xxxx.json

示例文件1000.json

[
  {
    "gender": {
      "value": "Female"
    },
    "age": 38.58685,
    "age_group": "adult"
  },
  {
    "gender": {
      "value": "Male"
    },
    "age": 26.64953,
    "age_group": "adult"
  }
]
Run Code Online (Sandbox Code Playgroud)

示例文件2000.json

[
  {
    "gender": {
      "value": "Male"
    },
    "age": 63.8272,
    "age_group": "adult"
  },
  {
    "gender": {
      "value": "Male"
    },
    "age": 11.8287,
    "age_group": "child"
  }
]
Run Code Online (Sandbox Code Playgroud)

一个文件output.txt 中的所需输出

1000 & Female,Male & 38,26 & adult,adult
2000 & Male,Male & 63,11 & adult,child

awk json jq

-3
推荐指数
1
解决办法
189
查看次数