一尘不染

python 3.5中的json.loads和Redis

redis

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

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

因此json.loads()会引发错误:*** TypeError:JSON对象必须为str,而不是’bytes’。我应如何恢复为ascii?


阅读 420

收藏
2020-06-20

共1个答案

一尘不染

通常,您需要记住首字母缩略词BADTIE:

Bytes
Are
Decoded
Text
Is
Encoded

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

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

2020-06-20