duckduckgo模块在python 3.4.4中不起作用
嗨,我从你那里得到了以下模块 这段代码在python 2.7中似乎可以正常工作,但在3.4中出现以下错误:duckduckgo模块在python 3.4.4中不起作用,python,python-2to3,duckduckgo-api,Python,Python 2to3,Duckduckgo Api,嗨,我从你那里得到了以下模块 这段代码在python 2.7中似乎可以正常工作,但在3.4中出现以下错误: Traceback (most recent call last): File "E:\Python34\My programs\Novos\duckduckgo.py", line 2, in <module> import urllib2 ImportError: No module named 'urllib2' 正如您所知,当我运行查询函数时,第二个代码段
Traceback (most recent call last):
File "E:\Python34\My programs\Novos\duckduckgo.py", line 2, in <module>
import urllib2
ImportError: No module named 'urllib2'
正如您所知,当我运行查询函数时,第二个代码段给了我以下错误:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
query("foobar")
File "E:\Python34\duckduckgo.py", line 45, in query
json = j.loads(response.read())
File "E:\Python34\lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
查询(“foobar”)
查询中第45行的文件“E:\Python34\duckduckgo.py”
json=j.loads(response.read())
文件“E:\Python34\lib\json\\ uuuuu init\uuuuu.py”,第312行,加载
s、 _u_类________;名称____;)
TypeError:JSON对象必须是str,而不是“bytes”
有人能告诉我我做错了什么吗
提前谢谢 嗯,我自己找到了解决办法。 将代码转换为python 3后,要解决
TypeError:JSON对象必须是str,而不是“bytes”
error,请替换
json = j.loads(response.read())`
与`
reader = codecs.getreader("utf-8")
json = j.loads(reader(response).read())`
并在代码顶部添加import codec
这个补丁很有魅力 或者不需要导入模块:
.read().decode('UTF-8')
是的,您也可以这样做
json = j.loads(response.read())`
reader = codecs.getreader("utf-8")
json = j.loads(reader(response).read())`