Non puoi farlo direttamente, ma fortunatamente c'è un nuovo modulo Redis chiamato RedisJSON che fa esattamente ciò di cui hai bisogno e ha anche un bel binding Python. Puoi avviare un contenitore mobile RedisJSON o utilizzare Redis 4.0+, quindi scaricare/compilare e installare RedisJSON e configurare Redis per caricarlo e aggiunge comandi nativi per la manipolazione JSON.
Ti consente di archiviare documenti JSON in Redis, quindi recuperare o modificare un elemento specifico nell'albero del documento, senza recuperare (o persino analizzare internamente) il documento. Il suo client Python ti consente persino di archiviare i dict python e di convertirli automaticamente in JSON.
Modulo ReJSON:http://redisjon.io
Client Python:https://pypi.python.org/pypi/rejson
Esempio:
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'))
)