【问题标题】:How to remove a json string from list in python如何从python中的列表中删除一个json字符串
【发布时间】:2015-11-16 12:54:27
【问题描述】:

我有两个包含特定数据的列表,我想将它们合并到一个没有重复的列表中。

list1 =[{"id": "123","Name": "Sam", "Age": 10},{"id": "124","Name": "Ajay", "Age": 10}]

list2 =[{"id": "123","Name": "Sam"},{"id": "124","Name": "Ajay"},{"id": "125","Name": "Ram"}]

输出列表应该是这样的

output= [{"id": "123","Name": "Sam", "Age": 10},{"id": "124","Name": "Ajay", "Age": 10},{"id": "125","Name": "Ram"}]

【问题讨论】:

  • 你自己做过这方面的工作吗?如果是这样,你在哪里卡住了?你基本上有带有字典的 Python 列表,这不是 JSON 特有的。
  • @MartijnPieters 我尝试使用 list2.remove(list1) 但它不能正常工作

标签: python json list


【解决方案1】:

大概是id键唯一标识了信息。如果是这样,请从字典中的两个列表中收集所有信息,然后从中生成一个新列表:

from itertools import chain

per_id = {}
for info in chain(list1, list2):
    per_id.setdefault(info['id'], {}).update(info)

output = list(per_id.values())  # Python 2 and 3 compatible

演示:

>>> from itertools import chain
>>> list1 = [{'Age': 10, 'id': '123', 'Name': 'Sam'}, {'Age': 10, 'id': '124', 'Name': 'Ajay'}]
>>> list2 = [{'id': '123', 'Name': 'Sam'}, {'id': '124', 'Name': 'Ajay'}, {'id': '125', 'Name': 'Ram'}]
>>> per_id = {}
>>> for info in chain(list1, list2):
...     per_id.setdefault(info['id'], {}).update(info)
...
>>> list(per_id.values())
[{'Age': 10, 'id': '123', 'Name': 'Sam'}, {'Age': 10, 'id': '124', 'Name': 'Ajay'}, {'id': '125', 'Name': 'Ram'}]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2016-06-11
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    相关资源
    最近更新 更多