json.loads 和 python 3.5 中的 Redis

json.loads and Redis in python 3.5

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

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

所以 json.loads() 引发错误: *** 类型错误:JSON 对象必须是 str,而不是 'bytes' 我应该如何恢复为 ascii?

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

Bytes
Are
Decoded
Text
Is
Encoded

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

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