首页 > 解决方案 > 一起添加 JSON 数据

问题描述

假设我有 2 个 JSON 对象(字典):

first_dict={"features": [{"attributes": {"id": "KA88457","name": "Steven", "phone":"+6590876589"}}]}
second_dict={"features": [{"attributes": {"id": "KA88333","name": "John", "phone":"+6590723456"}}]}

我想添加它们,以便我有这样的东西:

{"features": [{"attributes": {"id": "KA88457","name": "Steven", "phone":"+6590876589"}}], 'features': [{'attributes': {'id': 'KA88333', 'name': 'John', 'phone': '+6590723456'}}]}

如果我使用first_dict.update(second_dict),我会得到以下信息。我该如何解决?

{'features': [{'attributes': {'id': 'KA88333', 'name': 'John', 'phone': '+6590723456'}}]}

标签: python-3.xdictionarymerge

解决方案


根据RFC 7159,对象内不能有重复的名称。

对象结构表示为一对围绕零个或多个名称/值对(或成员)的花括号。名称是一个字符串。每个名称后面都有一个冒号,将名称与值分开。单个逗号将值与后面的名称分开。 对象中的名称应该是唯一的。

虽然,原始 JSON 标准ECMA-404并没有说明重复名称。大多数 JSON 库(包括 python3 JSON 库)不支持此功能。

你不能这样做的另一个原因是你试图在字典中为一个键设置两个不同的值(这基本上是一个hash map)。

如果你真的需要这个,你必须编写自己的序列化程序,或者找到一个支持这个的 Python JSON 库。


推荐阅读