redis.client import string_keys_to_dict, dict_merge

220 Views Asked by At

I have tried using this from both python 3.6 and 3.9 but get the same error:

pip install serialized-redis-interface
Collecting serialized-redis-interface
  Using cached serialized_redis_interface-0.3.1-py3-none-any.whl (7.8 kB)
Requirement already satisfied: redis>3 in /home/idf/anaconda3/envs/works/lib/python3.6/site-packages (from serialized-redis-interface) (4.3.5)
Requirement already satisfied: packaging>=20.4 in /home/idf/anaconda3/envs/works/lib/python3.6/site-packages (from redis>3->serialized-redis-interface) (21.3)
Requirement already satisfied: typing-extensions in /home/idf/anaconda3/envs/works/lib/python3.6/site-packages (from redis>3->serialized-redis-interface) (4.1.1)
Requirement already satisfied: importlib-metadata>=1.0 in /home/idf/anaconda3/envs/works/lib/python3.6/site-packages (from redis>3->serialized-redis-interface) (4.8.3)
Requirement already satisfied: async-timeout>=4.0.2 in /home/idf/anaconda3/envs/works/lib/python3.6/site-packages (from redis>3->serialized-redis-interface) (4.0.2)
Requirement already satisfied: zipp>=0.5 in /home/idf/anaconda3/envs/works/lib/python3.6/site-packages (from importlib-metadata>=1.0->redis>3->serialized-redis-interface) (3.6.0)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /home/idf/anaconda3/envs/works/lib/python3.6/site-packages (from packaging>=20.4->redis>3->serialized-redis-interface) (3.0.9)
Installing collected packages: serialized-redis-interface
Successfully installed serialized-redis-interface-0.3.1

This code doesn't work (but it used to work, not sure what this new installation broke):

import serialized_redis

def connect_redis(redis_host, redis_port, redis_password):

    print("Connecting redis")

    try:

        # The decode_repsonses flag here directs the client to convert the responses from Redis into Python strings
        # using the default encoding utf-8.  This is client specific.
        redis_connection_object = serialized_redis.JSONSerializedRedis(host=redis_host, port=redis_port, password=redis_password, db=0)
        #redis.StrictRedis(host=redis_host, port=redis_port, password=redis_password, decode_responses=True)
        if None == redis_connection_object:
            print("redis is not connected")
        return redis_connection_object
    except Exception as e:
        print(e)

        return None

The error:

Traceback (most recent call last):
  File "options.py", line 42, in <module>
    from redis_connection import connect_redis
  File "/home/idf/Downloads/backup/amplify/redis_connection.py", line 1, in <module>
    import serialized_redis
  File "/home/idf/anaconda3/envs/works/lib/python3.6/site-packages/serialized_redis/__init__.py", line 5, in <module>
    from redis.client import string_keys_to_dict, dict_merge
ImportError: cannot import name 'dict_merge'
0

There are 0 best solutions below