Не можете да направите това директно, но за щастие има нов Redis модул, наречен RedisJSON, който прави точно това, от което се нуждаете, и също така има хубаво Python свързване. Можете да стартирате Docker контейнер на RedisJSON или да използвате Redis 4.0+, след това да изтеглите/компилирате и инсталирате RedisJSON и да конфигурирате Redis да го зарежда, като добавя команди за JSON манипулация.
Позволява ви да съхранявате JSON документи в Redis и след това да извличате или променяте конкретен елемент в дървото на документа, без да извличате (или дори вътрешно анализирате) документа. Неговият Python клиент дори ви позволява да съхранявате python dicts и автоматично да ги преобразува в JSON.
ReJSON модул:http://redisjon.io
Клиент на Python:https://pypi.python.org/pypi/rejson
Пример:
from rejson import Client, Path
rj = Client(host='localhost', port=6379)
# Set the key `obj` to some object
obj = {
'answer': 42,
'arr': [None, True, 3.14],
'truth': {
'coord': 'out there'
}
}
rj.jsonset('obj', Path.rootPath(), obj)
# Get something
print 'Is there anybody... {}?'.format(
rj.jsonget('obj', Path('.truth.coord'))
)