从redis-py
4.0
开始,支持json。我在Windows 11
上使用redis-py
版本4.0.2
。我有一个redis服务器,在docker中使用redislabs/rejson:latest
运行。
我正在尝试通过以下方式加载JSON对象-
import redis
from redis.commands.json.path import Path
from redis import exceptions
from redis.commands.json.decoders import unstring, decode_list
r = redis.Redis()
d = {"hello": "world", b"some": "value"}
r.json().set("somekey", Path.rootPath(), d)
只是它是如何在测试中完成的-https://github.com/redis/redis-py/blob/e8bcdcb97b8c915e2bb52353aeda17c00e1be215/tests/test_json.py#L19
但是我得到了这个错误-
TypeError: keys must be str, int, float, bool or None, not bytes
我错过了什么?
2条答案
按热度按时间a2mppw5e1#
你的json中有一个B前缀,它代表字节。
只需从
b"some":
中删除'b'
,它就可以按预期工作:sczxawaw2#
这将修复它(添加
decode_keys=True
来解码任何二进制密钥):