【发布时间】:2015-10-20 21:50:55
【问题描述】:
基本上我向网站发出请求并得到一个字节响应:b'[{"geonameId:"703448"}..........'. 我很困惑,因为虽然它是字节类型,但它非常易于人类阅读,并且看起来像一个 json 列表。我知道响应是在运行r.encoding 时以latin1 编码的,它返回ISO-859-1,我试图对其进行解码,但它只返回一个空字符串。这是我目前所拥有的:
r = response.content
string = r.decode("ISO-8859-1")
print (string)
这是它打印一个空行的地方。 但是,当我运行
len(string)
我得到:回31023
如何在不返回空字符串的情况下解码这些字节?
【问题讨论】:
-
在 python 2.x 中,b 前缀将导致包含的字符串成为
str类型,您可能已经隐藏了一些编码字符。在 Python 3.x 上,您将收到bytes文字。为什么你认为你需要执行任何编码/解码? -
因为我需要解析 json,我只是尝试循环遍历它:使用
for i in range(len(contents)): print content[i],它只是打印出很多数字。
标签: python json byte python-requests decoding