gpt4 book ai didi

python - 重命名json文件python中的重复键

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:46 24 4
gpt4 key购买 nike

我的 json 文件有重复的键。

示例

{
"data":"abc",
"data":"xyz"
}

我想把它做成 { “数据1”:“abc”, “数据2”:“xyz” }

我尝试将 object_pairs_hook 与 json_loads 一起使用,但它不起作用。谁能帮我用Python解决上述问题

最佳答案

您可以向 load 方法传递一个关键字参数来处理配对,您可以在其中检查重复项,如下所示:

raw_text_data = """{
"data":"abc",
"data":"xyz",
"data":"xyz22"
}"""
def manage_duplicates(pairs):
d = {}
k_counter = Counter(defaultdict(int))
for k, v in pairs:
d[k+str(k_counter[k])] = v
k_counter[k] += 1

return d

print(json.loads(raw_text_data, object_pairs_hook=manage_duplicates))

我使用 Counter 对每个键进行计数,如果它已经存在,我会将键保存为 k+str(k_counter[k) - 所以它将是添加了尾随数字。

附注

如果您可以控制输入,我强烈建议将您的 json 结构更改为:

{"data": ["abc", "xyz"]}

The rfc 4627 for application/json media type建议使用唯一的键,但不会明确禁止它们:

The names within an object SHOULD be unique.

关于python - 重命名json文件python中的重复键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45027629/

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