Det kan du inte direkt göra, men som tur är finns det en ny Redis-modul som heter RedisJSON som gör precis vad du behöver, och den har en snygg Python-bindning också. Du kan starta en RedisJSON docker-container eller använda Redis 4.0+, sedan ladda ner/kompilera och installera RedisJSON och konfigurera Redis för att ladda den, och den lägger till inbyggda kommandon för JSON-manipulation.
Det låter dig lagra JSON-dokument i Redis, och sedan antingen hämta eller ändra ett specifikt element i dokumentträdet, utan att hämta (eller internt till och med tolka) dokumentet. Dess Python-klient låter dig till och med lagra pythondikt och konvertera dem till JSON automatiskt.
ReJSON-modul:http://redisjon.io
Python-klient:https://pypi.python.org/pypi/rejson
Exempel:
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'))
)