В настоящее время я пытаюсь искать записи в моем Redis, которые соответствуют определенному значению через HTTP API, так же, как вы делаете это с обычной БД (например: http://localhost:8000/api?name=John&age=20) с библиотекой Redis Python ( https://pypi.org/project/redis/).
Код, который у меня есть, возвращает весь хэш, преобразует каждую запись в JSON и добавляет ее в список
import json
import redis
import os
r = redis.StrictRedis(host=os.environ['redis_url'], port=os.environ['redis_port'], password=os.environ['redis_pass'], ssl=True)
result = r.hgetall('Directory')
dic_list = []
for key in result.keys():
dic_list.append(json.loads(result[key].decode('utf-8')))
return dic_list
Я знаю, что могу получить значение определенного ключа с помощью
r.hget('Directory', 'key_I_want')
Однако внутри каждого ключа есть целый JSON, заполненный информацией, поэтому, например, это будет ключ, пример значения внутри хеша Справочника
"1": {
"name": "James",
"age": "22",
"favorite_color":"Green"
},
"2":{
"name":"John",
"age": "20",
"favorite_color": "red"
},
"3":{
"name":"Jim",
"age": "30",
"favorite_color": "yellow"
}
Итак, я знаю
r.hget('Directory', '1')
вернется
{
"name": "James",
"age": "22",
"favorite_color":"Green"
}
Но что я действительно хочу, так это искать каждый JSON с определенными значениями, а не просто получать значения каждого ключа внутри хеша, есть ли способ сделать это на самом деле?