【问题标题】:Add Dictionary Keys and Values to Redis List将字典键和值添加到 Redis 列表
【发布时间】:2018-10-19 04:56:30
【问题描述】:

我正在尝试使用字典理解将当前字典添加到 Redis 列表,然后打印出该列表的第一个(又名当前)键和值。我说当前是因为这是一个过程,我将继续使用 while 循环来构建列表,但我必须始终访问第一个键/值。

我确信我完全是在扼杀这个,但这就是我所拥有的:

adict = {"a":1,"b":2,"c":3}

{rserver.rpush("list",value) for value in adict}

print(float(rserver.lindex("list",0)))

我需要返回包含键和值的列表。

非常感谢您的帮助。谢谢!

【问题讨论】:

  • 你应该打电话给LRANGE而不是LINDEX
  • 如果我做 print(rserver.lrange("buylist",0,-1)) 我只会拿回钥匙。我需要同时获取键和值..
  • 下次请发布一个可重现的代码示例,包括导入等。您的插入语句(第 2 行)也将不起作用,因为您在使用 @ 时按下的是键而不是值987654324@;你要使用的是_ for value in adict.values()
  • 我只得到值做 {rserver.rpush("list",value) for value in adict.values()}。我如何获得两个键:值
  • 对于任何字典,您都可以访问.keys().values() 的(有序)列表和.items() 的(键、值)列表

标签: python-3.x list dictionary redis dictionary-comprehension


【解决方案1】:

我不太肯定你的 redis-list 应该包含什么(请在问题中包含你的预期结果),但假设它应该在插入的末尾看起来像这样["a:1", "b:1", "c:1"],你可以用

adict = {"a":1,"b":2,"c":3}
for key,value in adict.items():
  rserver.rpush("list", ":".join([key, value]))

print(float(rserver.lindex("list",0))) #>>> "a:1"

(因为你没有包含rserver到底是什么接口,所以很难猜测它的确切行为)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多