【发布时间】:2016-07-20 17:52:55
【问题描述】:
以下代码块摘自以下论坛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 个项目的字典,每个项目包含不同数量的项目和数据结构。
【问题讨论】:
-
看起来像键值类型排列。使用键“字符串”获取条目的值。非常直接。
-
提示:
return与此无关。res['items']只是另一个产生结果的表达式。 -
您可能想阅读Python tutorial;我将您直接链接到使用该语法的部分;你可能想start at the beginning。