Bingsearch返回'instancemethod'对象没有属性'__getitem__'

时间:2013-08-07 16:37:41

标签: python search-engine bing

我已经写了这段代码;

import bingsearch
bingsearch.API_KEY='mykey'
r = bingsearch.request("JohnDalton")
r.status_code
r[0]['Description']
print r[0]['Url']

这是bingsearch.py​​文件

import requests
import urllib2

URL = 'https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=%(query)s&$top=50&$format=json'
API_KEY = 'mykey'

def request(query, **params):
    r = requests.get(URL % {'query': query}, auth=('', API_KEY))
    return r.json['d']['results']   

正如我在标题中提到的,它给了我一个实例方法错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

@Chris Barker早些时候出现了。

您需要将行return r.json['d']['results']更改为return r.json()['d']['results']

您应该对requests.get结果和返回的JSON进行正确的错误检查。它可能不包含您期望的项目,然后会引发KeyError

对于请求错误,您可能需要检查request documentation,其中包含可能异常的基本起点。