gpt4 book ai didi

Python: TypeError: 'NoneType' 对象在行 results = data ['responseData' ] ['results' ] 处不可下标

转载 作者:行者123 更新时间:2023-12-01 09:01:04 24 4
gpt4 key购买 nike

当我运行代码时,结果是这样的:类型错误:“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)

最佳答案

预计网站会向您发送包含响应数据的内容,并且它应该包含结果,但由于某种原因(错误?),他们向您发送了不同的数据。 始终在使用前检查您所拥有的内容。

以下是检查您是否收到预期内容的方法:

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: TypeError: 'NoneType' 对象在行 results = data ['responseData' ] ['results' ] 处不可下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52455000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com