我正在使用我在 SO 上找到的一些代码来谷歌搜索一组字符串并返回“预期”数量的结果。这是该代码:
for a in months:
for b in range(1, daysInMonth[a] + 1):
#Code
if not myString:
googleStats.append(None)
else:
try:
query = urllib.urlencode({'q': myString})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
search_response = urllib.urlopen(url)
search_results = search_response.read()
results = json.loads(search_results)
data = results['responseData']
googleStats.append(data['cursor']['estimatedResultCount'])
except TypeError:
googleStats.append(None)
for x in range(0, len(googleStats)):
if googleStats[x] != None:
finalGoogleStats.append(googleStats[x])
有两个问题,可能是相关的。当我返回 len(finalGoogleStats) 时,每次都不同。一次是 37,然后是 12。但是,它应该更像是 240。
这是我在取出 try/except 时收到的 TypeError:
TypeError: 'NoneType' object has no attribute '__getitem__'
在线发生
googleStats.append(data['cursor']['estimatedResultCount'])
所以,我只是无法弄清楚为什么 googleStats 中的 None 数量每次都在变化,而且它从来没有像应有的那样低。如果有人有任何想法,我很想听听他们,谢谢!
更新
当我尝试为我正在搜索的每个想法打印数据时,我会得到大量的 Nones 和非常非常少的实际 JSON 字典。我得到的字典分布在所有搜索中,我没有看到什么是无和什么不是的模式。因此,这个问题看起来与 GoogleAPI 的关系比其他任何事情都多。