0

RESTful API を使用して Atlassian On Demand でユーザーを管理するための最初の Python プログラムを作成しています。users/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
        }
    ]

これを複数回呼び出しているため、結果に重複した人が含まれています。検索して読んでいますが、このリストの重複を排除する方法がわかりません。ラムダ関数を使用してこのリストをソートする方法を見つけました。リストを並べ替えてから、反復して重複を削除できることに気付きました。もっとエレガントな解決策が必要だと思います。

ありがとうございました!

4

2 に答える 2

0

ユーザー名は一意ですよね?

である必要がありlistますか?代わりにdictof s にするのが簡単な解決策のようです。dictユーザー名をキーとして使用すると、最新バージョンのみが表示されます。

値を並べ替える必要がある場合は、OrderedDict調べることができるタイプがあります: http://docs.python.org/2/library/collections.html#collections.OrderedDict

于 2013-10-27T03:49:24.880 に答える