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

redis-py调用lrange()函数触发TypeError,请求技术排查帮助

问题排查与解决方案

错误原因分析

报错TypeError("int() argument must be a string, a bytes-like object or a real number, not 'NoneType'")的核心是:你传入int()函数的参数是None值。虽然你贴的代码里写了int(0)或int(-1),但这大概率是简化后的写法——实际代码中你可能是从变量(比如配置项、用户输入)获取start/end值,而这些变量没有被正确赋值,导致传入int()的是None。

具体解决步骤

  • 移除多余的int()调用:lrange的start和end参数本身就接受整数,直接传0和-1即可,不需要额外转换。如果你是用变量传递参数,先确认变量不是None。
  • 检查Redis客户端初始化:确保redis_client是正确实例化的对象,示例代码如下:
    import redis
    # 基础初始化(根据你的Redis配置调整host/port/db)
    redis_client = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)
    # 可选:测试连接是否正常
    print(redis_client.ping())  # 输出True则连接正常
    
  • 运行最小测试代码验证:用极简代码确认功能正常,排除其他代码干扰:
    import redis
    
    redis_client = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)
    # 先写入测试数据(如果已有数据可跳过)
    redis_client.rpush('TLV-NYC', 'sample_data_1', 'sample_data_2')
    # 读取列表
    redis_data = redis_client.lrange('TLV-NYC', 0, -1)
    print(redis_data)  # 应输出列表内容
    
  • 排查变量赋值逻辑:如果上述测试代码正常,回到你的原有代码,检查传递给lrange的start/end变量是否被正确赋值,比如是否从空的配置项、未初始化的变量中取值导致None。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:20:32