Я пишу программу на Python, которая передает поисковый запрос в Google с помощью API поиска Google и загружает первые 10 результатов. Я смог сделать это в Python 2.6 следующим образом:
query = urllib.parse.urlencode({'q' : 'searchterm','start' : k},doseq=false)
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' \
% (query)
results = urllib.urlopen(url)
resultsjson = json.loads(results.read())
betterResults += resultsjson["responseData"]["results"]
Google search API возвращает результаты в виде json, поэтому я использовал приведенный выше код, чтобы загрузить результаты в json of my и разобрать их в список (betterResults).
Когда я переключился на Python 3, моя программа начала генерировать исключения. По-видимому, в Python 2.6 объект, возвращаемый функцией urlopen (), является файловым объектом, который может быть загружен в json. В Python 3.1 возвращаемый объект является объектом HTTPResponse, который содержит метод read (), как того требуют спецификации json, но является байтовым объектом. Поэтому я не смог получить доступ к информации, как в версии 2.6.
Есть ли способ получить доступ к json, возвращенному Google? Как я могу получить результаты в Python 3 и иметь возможность выбрать, какие поля я хочу, как я мог сделать с JSON?
Большое спасибо,
BSG