You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python向Redis写入列表数据,redis-cli显示异常问题咨询

Redis列表元素显示问题解答

没错,这绝对是redis-cli的正常显示方式,但背后的原因是你的代码写法导致列表里存的是三个独立元素,而不是你期望的单个"对象"。

让我拆解一下细节:

  • 你代码里用了r.rpush(contractTuple[0], *seq),这里的*操作符会把seq这个列表拆成三个独立的参数传递给rpush。也就是说,你相当于执行了r.rpush(key, ts, 'ask', msg.price),所以Redis的列表里会新增三个单独的元素,而不是把整个seq作为一个整体存进去。
  • redis-cli在执行lrange命令时,会把列表中的每个元素单独打印一行,所以你看到的三行输出完全符合当前数据的存储状态。

如果想把seq作为单个"对象"存储,你需要把它序列化成一个单一的字符串(Redis列表的元素只能是字符串类型),最常用的方式是用JSON序列化:

import json
from datetime import datetime

ts = datetime.now().timestamp()
if msg.field == 2:
    seq = [ts, 'ask', msg.price]
    # 将序列转为JSON字符串
    serialized_seq = json.dumps(seq)
    r.rpush(contractTuple[0], serialized_seq)

这样再用lrange ES 0 -1查看时,就会看到单个元素,比如:

  1. "[1523994426.496158,"ask",2699.5]"

之后需要使用这个数据时,只需要用json.loads()把字符串解析回原来的列表即可。

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:26:14