以下代码块来自以下论坛Programmatically searching google in Python using custom search
from googleapiclient.discovery import build
import pprint
my_api_key = "Google API key"
my_cse_id = "Custom Search Engine ID"
def google_search(search_term, api_key, cse_id, **kwargs):
service = build("customsearch", "v1", developerKey=api_key)
res = service.cse().list(q=search_term, cx=cse_id, **kwargs).execute()
return res['items']
results = google_search(
'stackoverflow site:en.wikipedia.org', my_api_key, my_cse_id, num=10)
for result in results:
pprint.pprint(result)
在函数google_search
中,我无法理解res
作为res['items']
经文res
返回时为何以及会发生什么。
编辑:也许显示改变两种变体的结果会有所帮助。
使用res['items']
时results
是一个包含10个值的字典,每个值包含11个项目。
仅使用res
时results
是一个包含6个项目的字典,每个项目包含不同数量的项目和数据结构。
答案 0 :(得分:3)
它在变量res
中返回该键的值。
想象一下如下的数据结构:
{
"errors": [],
"items": [ "item1", "item2", "item3"],
"status": "success"
}
这是一个常规的python字典,您现在可以在项目中使用它。如果res
是对该词典的引用,则以下内容为真:
res['items'] == [ "item1", "item2", "item3"]
换句话说,它将返回字典中该索引指示的数组。对于命名索引,它基本上相当于res[0]
。
答案 1 :(得分:0)
我的猜测是res是一个字典对象。返回res['items']
将返回与字典对象'items'
中的密钥res
一起存储的值。
答案 2 :(得分:0)
res
是一个功能,以下是它可能包含的示例:
res = {
'item_count': 50,
'items': ['item1', 'item2', 'item3'],
'search' : 'search terms here'
}
如果您返回res
,那么您将获得结果中的所有内容。在我的示例中,您可以访问item_count
并获取结果数量。
返回res['items']
您只会获得查询结果的项目列表。