2

我在 redis 列表中创建了一个带有 json.dumps() 和 RPUSH(ed) 的 JSON 对象。当用 LRANGE ( redis.lrange() ) 取回 JSON 时,我收到一个二进制字符串

 b'{"si":"00:ff" ...

所以 json.loads() 引发错误: *** TypeError: the JSON object must be str, not 'bytes' 我应该如何恢复为 ascii ?

4

1 回答 1

10

一般来说,您要记住首字母缩略词 BADTIE:

Bytes
Are
Decoded
Text
Is
Encoded

如果你有字节,你跑来my_bytes.decode()获取文本。

如果您有文本,则运行my_text.encode()以获取字节。如果您知道编码,也可以指定编码,但它有一个合理的默认值。

于 2016-12-06T22:34:24.377 回答