Как сохранить сложную структуру данных в Redis? - PullRequest
1 голос
/ 24 октября 2019

Я новичок в питоне. Я получаю ошибки при запуске моего кода:

import redis

def redisSave(case, key, ob):
    dataBase = None
    if case == 'Product':
        dataBase = redis.Redis(db=0)
        dataBase.set(key, ob)
        dataBase.expire(key, time=600)
    else:
        pass

dictOb = {
    'price': '2000 $',
    'weight': '50 lb'
}
redisSave('Product', 'first', dictOb)

Это говорит о том, что тип ввода недействителен (redis.exceptions.DataError)

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

Попробуйте это:

def redis_save(case, key, obj):
    data_base = None

    if case == 'Product':
        data_base = redis.Redis(db=0)

        if isinstance(obj, dict):
            data_base.hmset(key, obj)
            data_base.expire(key, time=600)

Доступ к данным: data_base.hgetall('first')

Результат:

{
    b'price': b'2000 $',
    b'weight': b'50 lb'
}
0 голосов
/ 24 октября 2019

Вы также можете сохранить данные как JSON-dump или как маринованный объект . Смотрите: как хранить сложный объект в redis (используя redis-py) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...