{} 如果直接使用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