Nie możesz tego zrobić bezpośrednio, ale na szczęście istnieje nowy moduł Redis o nazwie RedisJSON, który robi dokładnie to, czego potrzebujesz, a także ma ładne powiązanie Pythona. Możesz uruchomić kontener dokera RedisJSON lub użyć Redis 4.0+, a następnie pobrać/skompilować i zainstalować RedisJSON oraz skonfigurować Redis, aby go załadować, a także dodać natywne polecenia do manipulacji JSON.
Pozwala przechowywać dokumenty JSON w Redis, a następnie pobierać lub modyfikować określony element w drzewie dokumentu, bez pobierania (lub nawet analizowania wewnętrznego) dokumentu. Jego klient w Pythonie pozwala nawet przechowywać wpisy w Pythonie i automatycznie konwertować je do formatu JSON.
Moduł ReJSON:http://redisjon.io
Klient Pythona:https://pypi.python.org/pypi/rejson
Przykład:
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'))
)