我正在编写一个程序(pythonPython3.5.2),它使用HTTPSConnection作为响应获取JSON对象。我让它使用一些示例代码,但不确定方法从何而来。我的问题是:在下面的代码中,在https://docs.python.org/3.4/library/http.client.html#http.client.HTTPResponse的文档中"21.12.2. HTTPResponse对象“下不存在解码(‘utf-9’)方法。我如何知道方法"response.read()“的返回值有"decode('utf-8')”可用?
Python是像C#对象那样从基类继承的,还是缺少了什么?
http = HTTPSConnection(get_hostname(token))
http.request('GET', uri_path, headers=get_authorization_header(token))
response = http.getresponse()
print(response.status, response.reason)
feed = json.loads(response.read().decode('utf-8'))谢谢你的帮助。
发布于 2018-07-11 16:18:58
响应对象的read方法总是返回一个字节字符串(在Python3中,我假设您在使用print函数时使用它)。字节字符串确实有一个decode方法,所以这段代码应该没有问题。当然,它假设响应是用UTF-8编码的,这可能是正确的,也可能是不正确的。
技术说明:电子邮件是一种很难处理的媒介:消息可以由不同的部分组成,每个部分都有不同的编码。至少对于web流量,您有机会读取Content-Type标头的charset属性以找到正确的编码。
https://stackoverflow.com/questions/51289991
复制相似问题