通过json对象迭代,使用python将新值添加到新列表中

时间:2015-05-04 18:58:03

标签: python json

我正在尝试迭代json响应以获取响应中每个数组元素的元素,并将它们添加到新的json对象中。我正在进行多次调用以获得新的json响应,但也可以从之前的调用返回相同的id。我想循环遍历所有调用,并在结尾处有一个唯一ID列表。

示例json响应

[{"firstName" : "John",
  "lastName"  : "Doe",
  "id:"       : "123542"
  },
  {"firstName" : "Jane",
  "lastName"  : "Doe",
  "id:"       : "123"
  },
  {"firstName" : "Harry",
  "lastName"  : "dude",
  "id:"       : "653"
  }
 ]

我现在拥有但不删除重复内容。它只是添加了每一个

new_members = []
for team in teams
    if team["name"] == "example":
        members = call_to_get_members.json()

        for member in members:
            new_member = {"firstName": member["firstName"], "lastName": member["lastName"]}
            if member not in new_members:
                new_members.append(new_member)
                break

1 个答案:

答案 0 :(得分:1)

我相信你在这一行中有一个错字:

new_member = {"firstName": member["firstName"] + "lastName": member["lastName"]}

+应为逗号。

添加每个条目的原因在于此if语句

if member not in new_members:

我相信你想要

if new_member not in new_members:

如果没有看到call_to_get_members.json()的输出,我必须假设它返回dict的列表,每个列表都包含名字,姓氏,和用户ID 每个成员。因此,member永远不会匹配new_members中的任何内容,因为该列表中的dict没有id字段。

这导致每次发生追加。