duckduckgo模块在python 3.4.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' 正如您所知,当我运行查询函数时,第二个代码段

嗨,我从你那里得到了以下模块

这段代码在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 "<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())`