これは長い質問ですので、ご容赦ください。まず、3つのAPIから取得した3つのdictから始めます。dictは次のような構造になっています。
API1 = {'results':[{'url':'www.site.com','title':'A great site','snippet':'This is a great site'},
{'url':'www.othersite.com','title':'Another site','snippet':'This is another site'},
{'url':'www.wiki.com','title':'A wiki site','snippet':'This is a wiki site'}]}
API2 = {'hits':[{'url':'www.dol.com','title':'The DOL site','snippet':'This is the dol site'},
{'url':'www.othersite.com','title':'Another site','snippet':'This is another site'},
{'url':'www.whatever.com','title':'Whatever site','snippet':'This is a site about whatever'}]}
API3 = {'output':[{'url':'www.dol.com','title':'The DOL site','snippet':'This is the dol site'},
{'url':'www.whatever.com','title':'Whatever site','snippet':'This is a site about whatever'},
{'url':'www.wiki.com','title':'A wiki site','snippet':'This is a wiki site'}]}
API1、API2、API3からURLキーを抽出して、処理を行います。これを行うのは、実行する必要のある処理がかなりあり、必要なのはURLだけだからです。終了すると、重複が削除されたURLのリストと、リスト内の各URLの位置に関連するスコアの別のリストがあります。
URLlist = ['www.site.com','www.wiki.com','www.othersite.com','www.dol.com','www.whatever.com']
Results = [1.2, 6.5, 3.5, 2.1, 4.0]
私が行ったことは、zip()
関数を使用してこれら2つのリストから新しい辞書を作成することです。
ScoredResults = dict(zip(URLlist,Results))
{'www.site.com':1.2,'www.wiki.com':6.5, 'www.othersite.com':3.5, 'www.dol.com':2.1, 'www.whatever.com':4.0}
今、私がする必要があるのは、URLをからリンクすることですScoredResults
。API1
またはAPI2
、API3
次のような新しい辞書を作成します。
Full Results =
{'www.site.com':{'title':'A great site','snippet':'This is a great site','score':1.2},
'www.othersite.com':{'title':'Another site','snippet':'This is another site','score':3.5},
...}
これは私には難しすぎます。私の質問履歴を振り返ると、私は多くの辞書の質問をしてきましたが、これまでのところ実装は機能していません。誰かが私を正しい方向に向けてくれたら、私はそれをとても感謝します。