这是一个很长的问题,所以请多多包涵。我从 3 个 API 获得的 3 个字典开始。dicts 的结构如下:
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()
函数从这两个列表中创建一个新字典。
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},
...}
这对我来说太难了。如果你回顾我的问题历史,我一直在问很多字典问题,但到目前为止还没有实施。如果有人能指出我正确的方向,我将不胜感激。