【问题标题】:How to merge multiple json objects into a single json object using python [duplicate]如何使用python将多个json对象合并为一个json对象[重复]
【发布时间】:2016-02-25 14:25:58
【问题描述】:

我有一个包含多个 JSON 对象的列表,我想将这些 JSON 对象组合成一个 json 对象,我尝试使用 jsonmerge 但没有运气。

我的清单是:

t = [{'ComSMS': 'true'}, {'ComMail': 'true'}, {'PName': 'riyaas'}, {'phone': '1'}]

想要的输出是

t = [{'ComSMS': 'true', 'ComMail': 'true', 'PName': 'riyaas', 'phone': '1'}]

我将列表放入 for 循环并尝试了 json 合并,但出现错误 head missing expected 2 arguments got 1

谁能帮我解决这个问题

【问题讨论】:

  • Python 中没有“JSON 对象”之类的东西 - 你要么有一个包含 JSON(这是一种文本格式...)的 Python 字符串,要么有一个 Python 对象(通常是dicts的list,有时是单个dict)通过解码JSON字符串(即json.loads())获得。

标签: python json


【解决方案1】:

在您的 dict 列表上循环。并在这种情况下更新一个空字典 z。

z.update(i): 从 i(type : dict.) 中获取 K:V 并添加到 z 中。

t = [{'ComSMS': 'true'}, {'ComMail': 'true'}, {'PName': 'riyaas'}, {'phone': '1'}]
z = {}
在 [13] 中:对于 i in t:
             z.update(i)
   .....:

在[14]中:z
Out[14]: {'ComMail': 'true', 'ComSMS': 'true', 'PName': 'riyaas', 'phone': '1'}

【讨论】:

  • 请解释你的答案。
【解决方案2】:

你可以这样做,但不应该这样做。

>>> t = [{'ComSMS': 'true'}, {'ComMail': 'true'}, {'PName': 'riyaas'}, {'phone': '1'}]
>>> [{i:j for x in t for i,j in x.items()}]
[{'ComSMS': 'true', 'phone': '1', 'PName': 'riyaas', 'ComMail': 'true'}]

【讨论】:

  • JSON 规范明确指出“对象”是键值对的无序集合,因此任何人都不应依赖键的排序。
猜你喜欢
  • 1970-01-01
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
相关资源
最近更新 更多