gpt4 book ai didi

python - Redis - 获取字典 HMGET 中的值

转载 作者:IT王子 更新时间:2023-10-29 06:07:36 27 4
gpt4 key购买 nike

我在 redis 中创建了一个键,如下所示:-

In [1]: import redis

In [2]: conn = redis.Redis('localhost')

In [3]: user = {
...: 'name': 'username',
...: 'age': 25,
...: 'likes': ['football', 'swimming'],
...: 'response': {
...: 'a': 1,
...: 'b': 2
...: }
...: }

In [4]: conn.hmset("pythonDict", user)
Out[4]: True

In [5]: conn.hgetall("pythonDict")
Out[5]:
{'age': '25',
'likes': "['football', 'swimming']",
'name': 'username',
'response': "{'a': 1, 'b': 2}"
}

所以,现在我想获取nameage等的值。

我做了以下事情:-

In [9]: conn.hmget("pythonDict","age", "likes")
Out[9]: ['25', "['football', 'swimming']"]

按预期工作。

现在我被困在一个点上,我想在响应中获取 a 的值。我怎样才能直接获取response[a] 的值,而不对其进行迭代,即不在应用程序级别???

最佳答案

Redis 不支持散列中的嵌套数据结构。您的客户已将它们(likesresponse)编码为字符串(可能使用 repr(),但也可能使用 JSON)和 hgetall () 将它们作为字符串返回。

因此没有任何 Redis 命令可以为您获取 a 的值。但是,您可以将嵌套数据结构显式编码为 JSON,然后编写一个简单的 Lua script提取服务器上的值。您将使用随附的 JSON library解压 response 并返回 a 的值。

关于python - Redis - 获取字典 HMGET 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37628455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com