Я пишу свою первую программу python для управления пользователями в Atlassian On Demand с использованием их RESTful API. Я вызываю пользователя/search? Username = API для извлечения списков пользователей, который возвращает JSON. Результаты список сложных типов словарей, которые выглядят примерно так:Удалить дубликаты из списка вложенных словарей
[
{
"self": "http://www.example.com/jira/rest/api/2/user?username=fred",
"name": "fred",
"avatarUrls": {
"24x24": "http://www.example.com/jira/secure/useravatar?size=small&ownerId=fred",
"16x16": "http://www.example.com/jira/secure/useravatar?size=xsmall&ownerId=fred",
"32x32": "http://www.example.com/jira/secure/useravatar?size=medium&ownerId=fred",
"48x48": "http://www.example.com/jira/secure/useravatar?size=large&ownerId=fred"
},
"displayName": "Fred F. User",
"active": false
},
{
"self": "http://www.example.com/jira/rest/api/2/user?username=andrew",
"name": "andrew",
"avatarUrls": {
"24x24": "http://www.example.com/jira/secure/useravatar?size=small&ownerId=andrew",
"16x16": "http://www.example.com/jira/secure/useravatar?size=xsmall&ownerId=andrew",
"32x32": "http://www.example.com/jira/secure/useravatar?size=medium&ownerId=andrew",
"48x48": "http://www.example.com/jira/secure/useravatar?size=large&ownerId=andrew"
},
"displayName": "Andrew Anderson",
"active": false
}
]
Я звоню это несколько раз, и таким образом получать дубликаты людей в моих результатах. Я искал и читал, но не могу понять, как дедуплицировать этот список. Я понял, как отсортировать этот список с помощью лямбда-функции. Я понимаю, что могу сортировать список, а затем повторять и удалять дубликаты. Я думаю, что должно быть более элегантное решение.
Спасибо!
Интерфейс RESTful должен вызываться несколько раз, чтобы получить всех пользователей, поэтому имена пользователей не уникальны в объединенном списке. На данный момент я отсортировал список с помощью специальной функции сортировки, а затем повторил его в обратном порядке, удалив дубликаты. Похоже, было бы более простое решение. – bschulz
Я не имел в виду, что имена пользователей будут уникальными в списке; Я имел в виду, что я ожидаю, что каждое имя пользователя соответствует точно одному пользователю (так что вам не придется беспокоиться о конфликтующих записях в 'dict'). Энтони Конг опубликовал, что я получаю; эта ссылка, которую я разместил, полезен только в том случае, если порядок имен пользователей имеет значение, но я предполагаю, что это, вероятно, не так. –
Ah - gotcha. Да, вы были правы. Что касается порядка сортировки, я преобразовал словарь обратно в список, а затем использовал метод sort() с лямбда-функцией ... быстрый, быстрый, простой и гораздо более элегантный, чем мой ручной поиск дубликатов. Большое спасибо за то, что указали мне на правильный путь! – bschulz