python 如何解析含有重复key的json

{} 如果直接使用python的json库解析并写入,如使用json.loads()函数,遇到重复key时,输出结果会保留最后一个值,如:{} 这不符合我们的需求,我们希望得到所有值。为此,我们需要自定义object_hook和object_pairs_hook回调函数。object_hook用于处理字典,object_pairs_hook处理有序键值对列表。我们定义...
python 如何解析含有重复key的json
解析含有重复key的json,需要解决程序只保留最后一个值的问题。首先,我们了解下json文件中默认的key是唯一的。例如,下面的json文件:

{}

如果直接使用python的json库解析并写入,如使用json.loads()函数,遇到重复key时,输出结果会保留最后一个值,如:

{}

这不符合我们的需求,我们希望得到所有值。为此,我们需要自定义object_hook和object_pairs_hook回调函数。object_hook用于处理字典,object_pairs_hook处理有序键值对列表。我们定义如下hook函数:

object_hook函数实现逻辑为:将所有重复的key值合并为一个list,使用字典推导式生成新的字典。

object_pairs_hook函数则将有序对列表转换为字典,同时处理重复的key。

使用时,在json.load()或json.loads()函数中传入自定义的object_hook和object_pairs_hook参数。示例代码如下:

运行后,输出结果为:

{}

参考文章: blog.csdn.net/dahlwuyn/...2024-09-19
mengvlog 阅读 5 次 更新于 2025-06-20 01:04:25 我来答关注问题0
檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部