Python Redis写入dict并通过嵌套键检索

Python Redis写入dict并通过嵌套键检索,python,json,dictionary,redis,Python,Json,Dictionary,Redis,所以我正在为学校做一个项目,但我在某个地方卡住了。我创建了一个包含3个变量的对象;源ip、目标ip、dnsname。我在一个对象中创建它,然后将其包装为JSON,并将其以“dnsanswer”的名称写入Redis,因此Redis中的整行代码如下所示,当我检查它是否正确写入时,我得到以下输出: {"srcip": "74.125.136.94", "NA": "www.google.nl", "dstip": "192.168.79.135"} 我通过使用lindex“dnsanswer”-1获

所以我正在为学校做一个项目,但我在某个地方卡住了。我创建了一个包含3个变量的对象;源ip、目标ip、dnsname。我在一个对象中创建它,然后将其包装为JSON,并将其以“dnsanswer”的名称写入Redis,因此Redis中的整行代码如下所示,当我检查它是否正确写入时,我得到以下输出:

{"srcip": "74.125.136.94", "NA": "www.google.nl", "dstip": "192.168.79.135"}
我通过使用lindex“dnsanswer”-1获得这个输出,它将显示Redis中最后添加的行

我现在被困的地方是这个;我希望能够从Redis请求“dstip”。我使用rpush将对象写入redis,并使用lindex查看redis中最后写入的行

这是函数将其写入redis的代码:

def toRedis(pakket):

    r_serv = redis.StrictRedis(host='localhost', port=6379, db=0)

    r_serv.rpush("dnsanswer", pakket) #werkt
    print r_serv.lindex("dnsanswer", -1) #werkt

TL;DR我如何从Redis中的一个键接收一个值?(不确定我的公式是否正确)。

该列表的成员对Redis来说是不透明的,因此您不能只请求其中的一部分。您可以做的是在Python代码中反序列化JSON并提取您感兴趣的密钥,或者使用服务器端Lua脚本(带或):

local member = redis.call('LINDEX', KEYS[1], -1)
local json = cjson.decode(member)
return json[]

对不起,我迟了答复。但是因为你告诉我这是不可能的,我决定把它作为字典而不是对象发送给Redis。