运行代码时,结果是这样的: TypeError:“ NoneType”对象不可下标
我是Python初学者。我刚刚从一个针对Python初学者的网站中选择了一个示例项目:https://www.pythonforbeginners.com/code-snippets-source-code/google-command-line-script/ 我正在使用Pycharm社区版。参考在线网络搜索帮助后,我编辑了一些代码来运行,但最终我被这个错误所困扰。 感谢您的帮助。
import json
from pip._vendor.distlib.compat import raw_input
import urllib.request
url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&"
query = raw_input("What do you want to search for ? >> ")
query = urllib.parse.urlencode({'q': query})
response = urllib.request.urlopen(url + query).read()
data = json.loads(response)
results = data['responseData']['results']
for result in results:
title = result['title']
url = result['url']
print(title + '; ' + url)
答案 0 :(得分:1)
预计网站会向您发送包含responseData的内容,并且应该包含结果,但是由于某些原因(错误?),他们向您发送了不同的数据。 始终在使用前先检查一下。
以下是检查您是否收到期望的方法:
if 'responseData' in data:
if 'results' in data['responseData']:
#-- do stuff
else:
print('Error: no results. Data was:' + data)
else:
print('Error: no responses. Data was:' + data)
另外,您可以尝试使用pprint命令打印数据结构,以查看所获得的内容:
from pprint import pprint
pprint(data)
这将帮助您在所有步骤中查看您得到的实际响应,数据是什么,等等。