redis py 和 hgetall - 为什么键值有 b""?

Tam*_*mpa 0 python redis python-3.x

下面是 redis 的 dict 返回。为什么是b?我该如何摆脱它?

data = r_client.hgetall(key)
{b'test1:r': b'2', b'test2:f': b'2'}

print('test1:r' in data)
False

print(b'test1:r' in data)
True
Run Code Online (Sandbox Code Playgroud)

当我从 redis 获取数据时,如何摆脱那个可怕的 b?

我的意思是我必须这样做才能得到我想要的:

new_data = {}
for key,value in data.items():
    new_data[key.decode()] = value.decode()
Run Code Online (Sandbox Code Playgroud)

Den*_*sLi 6

您可以添加参数来摆脱它。

client = redis.Redis('localhost', charset="utf-8", decode_responses=True)

Run Code Online (Sandbox Code Playgroud)