["python","redis"]
Python-redis keys() returns list of bytes objects instead of strings

I'm using the regular redis package in order to connect my Python code to my Redis server. As part of my code I check if a string object is existed in my Redis server keys. string = 'abcde' if string in redis.keys(): do something.. For some reasons, redis.keys() returns a list with bytes objects, such as [b'abcde'], while my string is, of course, a str object. I already tried to set charset, encoding and decode_responses in my redis generator, but it did not help. My goal is to insert the data as string ahead, and not iterate over the keys list and change each element to str() while checking it. Thanks ahead
You can configure the Redis client to automatically convert responses from bytes to strings using the decode_responses argument to the StrictRedis constructor: r = redis.StrictRedis('localhost', 6379, charset="utf-8", decode_responses=True) Make sure you are consistent with the charset option between clients. Note You would be better off using the EXISTS command and restructuring your code like: string = 'abcde' if redis.exists(string): do something.. The KEYS operation returns every key in your Redis database and will cause serious performance degradation in production. As a side effect you avoid having to deal with the binary to string conversion.