我正在使用
错误信息不是很具体,因为它提到的对象似乎并不是罪魁祸首。 json2csv.jq
从 JSON 中删除以下内容不会导致 jq 抛出错误:
jq
将嵌套的.json
文件转换为.csv
,但是,当我有一个特定的键、值时,似乎存在问题。我正在使用的脚本来自这个答案,如果我从输入文件中删除一行,它可以工作。
错误:jq: error (at example.json:0): object ({"favicon":...) is not valid in a csv row
错误信息不是很具体,因为它提到的对象似乎并不是罪魁祸首。 json2csv.jq
paths as $path
| {path: $path, value: getpath($path)}
| select(.value|type == "object" )
| select( [.value[]][0] | type != "object")
| .path + ([.value[]])
| @csv
example.json(可通过https://jsonlint.com验证):
{
"items": [
{
"id": 1234,
"title": "Title of Item",
"internet": {
"favicon": "https://example.com/icon.png",
"domain": "https://example.com"
},
"image": {
"gif": null,
"main": "https://example.com/image_large.png"
},
"description": {
"origin": null,
"resource": null
},
"referral": {
"owner": null,
"name": null
},
"url": "https://example.com/image.png?version=1"
}
],
"other": {
"data": 0,
"notes": 1,
"total": 1,
"misc": 1
}
}
从 JSON 中删除以下内容不会导致 jq 抛出错误:
, "url": "https://example.com/image.png?version=1"
调用:
$ jq -er -f json2csv.jq example.json
我不能真正地改变.json
文件,因为它需要有问题的那一行,所以我正在寻找来自jq
的解决方案。