我像这样在Redis中存储列表:
redis.lpush('foo', [1,2,3,4,5,6,7,8,9])
然后我像这样返回列表:
redis.lrange('foo', 0, -1)
我得到这样的东西:
[b'[1, 2, 3, 4, 5, 6, 7, 8, 9]']
如何将其转换为实际的Python列表?
另外,我看不到其中定义的任何内容有RESPONSE_CALLBACKS
帮助吗?我想念什么吗?
可能的解决方案(我认为很糟糕)可以是:
result = redis.lrange('foo',0, -1)[0].decode()
result = result.strip('[]')
result = result.split(', ')
# lastly, if you know all your items in the list are integers
result = [int(x) for x in result]
更新
好的,所以我找到了解决方案。
实际上,该lpush
函数希望所有列表项都作为参数传递,而不是作为单个列表传递。来自redis-py来源的功能签名使其清晰可见…
def lpush(self, name, *values):
"Push ``values`` onto the head of the list ``name``"
return self.execute_command('LPUSH', name, *values)
我在上面做的是发送一个列表作为参数,然后将其作为单项发送到Redis。
我应该按照答案中的建议拆箱清单:
redis.lpush('foo', *[1,2,3,4,5,6,7,8,9])
返回我期望的结果…
redis.lrange('foo', 0, -1)
[b'9', b'8', b'7', b'6', b'5', b'4', b'3', b'2', b'1']
我认为您正在碰到类似于 list.append() 和 list.extend() 之间的区别的语义。我知道这对我有用:
myredis.lpush('foo', *[1,2,3,4])
…请注意*(映射)运算符在列表前加了前缀!
我有这个Spring启动应用程序。属性 我想做的是在的元素中使用主题属性值的值注释 使用表达式 我得到,,作为分隔字符串 我如何循环到这个列表以获得,,,,? 编辑:我必须解析属性,以便@KafkaListener注册以使用来自主题、、等的消息。 我读到可以通过这种方式调用方法: 所以,我写了这个方法: 但未调用方法 因此,我尝试用这种方式直接将其添加到注释中: 但是这个解决方案也会给我带来错误。
问题内容: 我的数据库中有两个表: NEWS表的列: -新闻ID -作者的用户ID) 带有列的USERS表: -用户ID 我要执行此SQL: 当我在PHP中获得结果时,我想获取关联数组并通过获取列名。如何获得具有相同列名的新闻ID和用户ID? 问题答案: 您可以为所选的列设置别名:
我有一个json文件。 我需要将它转换为String的ArrayList。如何使用Jackson库? UPD2:
问题内容: 使用JOOQ解析器API,我可以解析以下查询,并从生成的Query对象获取参数映射。由此,我可以知道有一个参数,它的名称是“ something”。 但是,我还无法弄清楚如何确定参数“ something”是否已分配给名为“ BAZ”的列,并且该列是表“ BAR”的一部分。 解析器API是否可以获取与每个参数关联的表/列元数据? 问题答案: 从jOOQ 3.11开始,可用于访问内部表达
使用JOOQ parser API,我能够解析以下查询,并从生成的查询对象获得参数映射。从这里,我可以看出有一个参数,它的名字是“something”。 解析器API是否有获取与每个参数关联的表/列元数据的方法?
问题内容: 我正在使用CURL发送请求。响应数据类型为。如何解析这些数据并将其插入数据库? JSON输出: 问题答案: 如果您的变量是字符串json之类的,则必须使用function将其解析为 对象 或 数组 : 输出值 现在您可以将变量作为数组使用: 参考文献: json_decode -PHP手册