如何从python插入和检索REDIS中存储的json?

如何从python插入和检索REDIS中存储的json?,python,json,redis,Python,Json,Redis,我试图让这段代码与python一起工作 这是使用的代码: r = redis.StrictRedis(host='192.168.22.108', port=6379, db=0, decode_responses=True) #Docker servers. your_json = '["foo", {"bar":["baz", null, 1.0, 2]}]' parsed = json.loads(your_json) print(json.dumps(parsed, indent=4,

我试图让这段代码与python一起工作

这是使用的代码:

r = redis.StrictRedis(host='192.168.22.108', port=6379, db=0, decode_responses=True) #Docker servers.

your_json = '["foo", {"bar":["baz", null, 1.0, 2]}]'
parsed = json.loads(your_json)
print(json.dumps(parsed, indent=4, sort_keys=True))

r.append('sabado', (parsed))

print ("Recuperamos de REDIS: ")
recuperado = r.get('sabado')
print ("tipo de variable de recuperado: "+str(type(recuperado)))
parsed2 = json.loads(recuperado)
print(json.dumps(parsed2, indent=4, sort_keys=True))


I am obteining this error:

Recuperamos de REDIS: 
tipo de variable de recuperado: <type 'unicode'>
Traceback (most recent call last):
File "pruebas_web.py", line 17, in <module>
    parsed2 = json.loads(recuperado)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
r=redis.StrictRedis(主机=192.168.22.108',端口=6379,db=0,解码响应=True)#Docker服务器。
您的_json='[“foo”,{“bar”:[“baz”,null,1.0,2]}]'
parsed=json.load(您的_-json)
打印(json.dumps(已解析,缩进=4,排序键=True))
r、 追加('sabado',(已解析))
打印(“Reciperamos de REDIS:”)
Recurperado=r.get('sabado')
打印(“tipo de variable de RECURPERADO:+str(类型(RECURPERADO)))
parsed2=json.load(Reciperado)
打印(json.dumps(parsed2,indent=4,sort_keys=True))
我发现这个错误:
REDIS的复发:
重复使用变量的提示:
回溯(最近一次呼叫最后一次):
文件“pruebas_web.py”,第17行,在
parsed2=json.load(Reciperado)
文件“/usr/lib/python2.7/json/_init__.py”,第339行,加载
返回\u默认\u解码器。解码
文件“/usr/lib/python2.7/json/decoder.py”,第364行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
原始解码中的文件“/usr/lib/python2.7/json/decoder.py”,第382行
raise VALUERROR(“无法解码JSON对象”)
ValueError:无法解码任何JSON对象

基本上,我想做的是在redis中存储一个Json并将其取回。

您正在将Json的非序列化形式附加到密钥中。更改如下:

# r.append('sabado', (parsed))
r.set('sabado', your_json)