我一直在尝试更新一个名为的小型 Python 库libpynexmo https://github.com/marcuz/libpynexmo使用 Python 3。
我一直被这个功能困住了:
def send_request_json(self, request):
url = request
req = urllib.request.Request(url=url)
req.add_header('Accept', 'application/json')
try:
return json.load(urllib.request.urlopen(req))
except ValueError:
return False
当到达此位置时,json 会响应:
TypeError: the JSON object must be str, not 'bytes'
我在一些地方读到json.load
你应该传递对象(在这种情况下HTTPResponse
对象)与一个.read()
已附上,但不起作用HTTPResponse
对象。
我不知道接下来该去哪里,但由于我的整个 1500 行脚本刚刚转换为 Python 3,我不想回到 2.7。
面对同样的问题我使用decode()解决它
...
rawreply = connection.getresponse().read()
reply = json.loads(rawreply.decode())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)