Python TypeError:“非类型”对象没有属性“\uuuu getitem\uuuu”。必应搜索

Python TypeError:“非类型”对象没有属性“\uuuu getitem\uuuu”。必应搜索,python,Python,它会生成我上面提到的错误 import requests URL = "https://mykey:mykey@api.datamarket.azure.com/Bing/Search/Web?$format=json&Query=%(query)s" API_KEY = 'mykey' def request(query, **params): query = ('%27'+query+ '%27') r = requests.get(URL % {'query': q

它会生成我上面提到的错误

import requests
URL = "https://mykey:mykey@api.datamarket.azure.com/Bing/Search/Web?$format=json&Query=%(query)s"
API_KEY = 'mykey'
def request(query, **params):
    query = ('%27'+query+ '%27')
    r = requests.get(URL % {'query': query}, auth=('', API_KEY))
    print r.content
    #return r.json()['d']['results']    
r = request("JasonBourne")
print r[0]['Url']
r.content的值为

print r[0]['Url']
它不是整个值,因为它太大。

您的函数不返回任何内容。打印与返回值不是一回事

函数的默认返回值为None,这会导致错误。您想返回一些东西,很可能是r.json:

然后在结果上循环:

def request(query, **params):
    query = ('%27'+query+ '%27')
    r = requests.get(URL % {'query': query}, auth=('', API_KEY))
    return r.json()
或者将它们全部收集在一个列表中,并进行列表理解:

r = request("JasonBourne")
for res in r['d']['results']:
    print res['Url']

给您一个URL列表。

assert r[0]不是空的。为什么要注释掉return r.json['d']['results']?如果你一开始就得到了结果,那至少会有回报。谢谢。我如何为r['Url']@user2626758存储从一个变量访问的所有Url:将它们添加到您所指的列表中?对。我在函数中包含了这个。要访问它,我只需“为r中的res”执行操作?对不起,我是编程新手。我用它代替了for循环和print语句。代码与我在答案中定义的请求函数的结果相反。好的,你可以通过包括URL代码的放置位置和访问方式来更改你的答案吗。
r = request("JasonBourne")
for res in r['d']['results']:
    print res['Url']
r = request("JasonBourne")
urls = [res['Url'] for res in r['d']['results']]