gpt4 book ai didi

JSON 字段具有相同的名称

转载 作者:行者123 更新时间:2023-12-04 22:29:26 26 4
gpt4 key购买 nike

实际上,键在 JSON 对象中必须是唯一的(例如 Does JSON syntax allow duplicate keys in an object? )。但是,假设我有一个包含以下内容的文件:

{
"a" : "1",
"b" : "2",
"a" : "3"
}

有没有一种简单的方法可以将重复的键转换为数组?这样文件就变成了:
{
"a" : [ {"key": "1"}, {"key": "3"}],
"b" : "2"
}

或类似的东西,但将重复的键组合成一个数组(或查找和提取重复键值的替代方法)。

这是 Java 中的解决方案: Convert JSON object with duplicate keys to JSON array

有没有办法用 awk/bash/python 做到这一点?

最佳答案

如果您的输入确实是一个以原语为值的平面 JSON 对象,那么这应该有效:

jq -s --stream 'group_by(.[0]) | map({"key": .[0][0][0], "value": map(.[1])}) | from_entries'

{
"a": [
"1",
"3"
],
"b": [
"2"
]
}

对于更复杂的输出,这需要实际了解 --stream 应该如何使用,这超出了我的范围。

关于JSON 字段具有相同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956590/

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