gpt4 book ai didi

python - 在 python 3.1 中将 google 搜索结果转换为 json

转载 作者:太空宇宙 更新时间:2023-11-04 01:43:43 25 4
gpt4 key购买 nike

我正在编写一个 Python 程序,它使用谷歌搜索 API 向谷歌提供搜索词并下载前 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 的搜索 API 返回的结果是 json,所以我用上面的代码把结果下载到我的 json 中,然后解析成一个列表(betterResults)。

当我切换到 Python 3 时,我的程序开始抛出异常。显然,在 Python 2.6 中,urlopen() 返回的对象是一个类文件对象,可以加载到 json 中。在 Python 3.1 中,返回的对象是一个 HTTPResponse 对象,它确实包含一个 read() 方法,正如 json 规范所要求的那样,但它是一个字节对象。因此,我无法像在 2.6 中那样访问这些信息。

有什么办法可以访问google返回的json吗?我怎样才能在 Python 3 中获得结果并能够选择我想要的字段,就像我能够使用 json 所做的那样?

非常感谢, 背景

最佳答案

如果要将字节对象与 json.loads 一起使用,则需要对其进行解码

resultjson =  json.loads(results.read().decode())

docs also suggest将编码参数传递给 loads 函数:

json.loads(results.read(), encoding=<encoding-type>)

我认为 Lennart 解释了如何获取编码类型。

关于python - 在 python 3.1 中将 google 搜索结果转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143206/

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