我确实有几个类似的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替换类型)
如何获得正确的格式?
我有从 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
我可以使用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。
所以,我正在尝试导出一个来自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) 我有一个像这样的 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)
任何人都可以指导我吗?
我有很薄的 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 的结构以避免笛卡尔积?
有一个字符串列表(每行一个),比如
str1
str2
...
Run Code Online (Sandbox Code Playgroud)
如何将这些转换为 JSON 列表["str1", "str2"]?
我有两个文件(我只复制其中的一小部分,因为它们相当大):
_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) 我想将两个文件合并为一个文件,并根据第二列的值对它们进行排序。示例如下:
文件 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)
我怎么能这样做?
我想将此 JSON 压缩为 tsv 文件。
https://www.vi4io.org/assets/io500/2019-06/data.json
问题是每个条目({} 的第一级)都有许多字段/子字段。我不想指定这么多字段名称。并且不能保证所有条目的字段/子字段都相同。因此,我希望结果列包含所有字段/子字段的联合。列名称的顺序应尽可能接近原始 json 文件。(例如,同一字段中的那些子字段应一起列在 tsv 中)。
将此json文件转换为tsv的最佳方法是什么?谢谢。
我的 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