gpt4 book ai didi

Python-redis keys() 返回字节对象列表而不是字符串

转载 作者:IT王子 更新时间:2023-10-29 05:55:00 26 4
gpt4 key购买 nike

我正在使用常规的 redis 包将我的 Python 代码连接到我的 Redis 服务器。

作为我代码的一部分,我检查我的 Redis 服务器 key 中是否存在字符串对象。

string = 'abcde'
if string in redis.keys():
do something..

由于某些原因,redis.keys() 返回一个包含字节对象的列表,例如 [b'abcde'],而我的字符串当然是 str对象。

我已经尝试在我的 redis 生成器中设置 charsetencodingdecode_responses,但没有帮助。

我的目标是在前面插入数据作为字符串,而不是遍历键列表并在检查时将每个元素更改为 str()。

提前致谢

最佳答案

您可以配置 Redis 客户端,使用 StrictRedis 构造函数的 decode_responses 参数自动将响应从字节转换为字符串:

r = redis.StrictRedis('localhost', 6379, charset="utf-8", decode_responses=True)

确保您与客户端之间的 charset 选项保持一致。

注意事项

你最好使用 EXISTS命令和重组您的代码,例如:

string = 'abcde'
if redis.exists(string):
do something..

KEYS 操作会返回 Redis 数据库中的每个键,这将导致生产中的性能严重下降。作为副作用,您可以避免处理二进制到字符串的转换。

关于Python-redis keys() 返回字节对象列表而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44026515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com