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()
获取字节。如果您知道编码,也可以指定编码,但它有一个合理的默认值。
我用 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()
获取字节。如果您知道编码,也可以指定编码,但它有一个合理的默认值。