gpt4 book ai didi

json - jq 错误 "object is not valid in a csv row"

转载 作者:行者123 更新时间:2023-12-04 00:21:59 34 4
gpt4 key购买 nike

我正在使用 jq转换嵌套 .json文件到 .csv ,但是,当我有一个特定的 时似乎有问题 key , JSON .我使用的脚本来自 this answer ,如果我从输入文件中删除一行,这会起作用。

错误 :

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

示例.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 的解决方案.

最佳答案

两者 @tsv@csv要求它们的输入是平面数组(即原子值数组)。有很多(无限多?)“扁平化”对象和数组的方法,所以在不知道你期望什么的情况下,我只是在胡乱猜测。

如果您想胡乱猜测,请替换 .path + [.value[]]经过

.path + [.value[]|tostring]

至少这将始终有效(假设输入是有效的 JSON),同时产生易于阅读的结果。

关于json - jq 错误 "object is not valid in a csv row",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59778708/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com