Python:TypeError:';非类型';对象在第results=data[';responseData';][';results';]行不可下标
当我运行代码时,结果是这样的: TypeError:“非类型”对象不可下标 我是Python初学者。我刚刚从一个Python初学者网站上挑选了一个示例项目: 我正在使用Pycharm社区版。参考联机web搜索帮助后,我编辑了一些代码行以供运行,但最后我被这个错误卡住了。 谢谢你的帮助Python:TypeError:';非类型';对象在第results=data[';responseData';][';results';]行不可下标,python,Python,当我运行代码时,结果是这样的: TypeError:“非类型”对象不可下标 我是Python初学者。我刚刚从一个Python初学者网站上挑选了一个示例项目: 我正在使用Pycharm社区版。参考联机web搜索帮助后,我编辑了一些代码行以供运行,但最后我被这个错误卡住了。 谢谢你的帮助 导入json 从pip.\u vendor.distlib.compat导入原始输入 导入urllib.request url=”http://ajax.googleapis.com/ajax/services/s
导入json
从pip.\u vendor.distlib.compat导入原始输入
导入urllib.request
url=”http://ajax.googleapis.com/ajax/services/search/web?v=1.0&"
query=原始输入(“您想要搜索什么?>>”)
query=urllib.parse.urlencode({'q':query})
response=urllib.request.urlopen(url+query).read()
data=json.load(响应)
结果=数据['responseData']['results']
对于结果中的结果:
title=结果['title']
url=结果['url']
打印(标题+';'+url)
预计该网站将向您发送包含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)
这将帮助您在所有步骤中查看您得到的实际响应、数据等。您使用哪一版本的python?urllib模块在Python2和Python3之间发生了显著变化。这可能是导致错误的原因。是否在python控制台中运行脚本?我认为该脚本是从命令行
运行的,谷歌Web搜索API不再可用。请迁移到Google自定义搜索API(https://developers.google.com/custom-search/)“,”responseStatus“:403}
我想我应该从比这更简单的事情开始。无论如何,谢谢你!