AttributeError: ‘int‘ object has no attribute ‘items‘

  • 从命令行输入zadd week_charm:2022-4:542:zset a x可正常插入数据,于是准备用python批量插入数据,没想到直接报错了
for id in ids.readlines():
    x = random.randint(1, 15) # 对应score
    a = 1000000000000 - int(id.strip())  # 对应value 
	r.zadd('week_charm:2022-4:542:zset', a, x)
Traceback (most recent call last):
  File "D:\test\week_star.py", line 17, in <module>
    r.zadd('week_charm:2022-4:542:zset', a, x)
  File "D:\test\venv\lib\site-packages\redis\commands\core.py", line 2749, in zadd
    for pair in mapping.items():
AttributeError: 'int' object has no attribute 'items'

报错原因: int类型没有items属性
查看源码,发现需要传入2个参数,那么为有序集合的key,mapping要传入对应的值和比重,2个值不能分开传,只能用字典形式传入
在这里插入图片描述
于是改成r.zadd('week_charm:2022-4:542:zset', {x: a})运行成功,通过 ZREVRANGE week_charm:2022-4:542:zset 0 -1 WITHSCORES查看 值弄反了, 再次查看源码 发现 获取到对应的值后会先存到一个列表里,而且前后顺序进行了调整,所以需要将对应的参数进行跳转
在这里插入图片描述
redis命令: ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN
最终版:r.zadd('week_charm:2022-4:542:zset', {a: x})
查看效果 运行成功,完美展示~

  • 删除单一value或者score zrem week_charm:2022-4:542:zset 11
  • 删除整个key : del week_charm:2022-4:542:zset
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误通常出现在Python中,意思是“'int' object has no attribute 'value'”即“'int'对象没有'value'属性”。 这个错误的原因是你在一个整数类型的对象上调用了一个不存在的属性名为'value'的属性。在Python中,如果你尝试访问一个对象不存在的属性,Python会抛出一个AttributeError异常。 要解决这个错误,你需要检查代码并找出在哪里尝试访问'int'对象的'value'属性。通常,这个错误是由于你错误地使用了变量名或函数名而不是属性名导致的。你可以使用dir()函数或者自己手动查看文档来查看对象都有哪些属性。 ### 回答2: "int" object has no attribute "value" 的错误信息通常是由于在对整数类型的变量使用.value属性时引起的。在Python中,整数类型属于基本类型,不具有.value属性。 如果想使用某个整数变量的值,只需要直接使用该变量即可,无需使用.value属性。例如,假设有一个整数变量x,要获取其值,只需要直接使用x即可,不需要使用x.value。 下面是一个示例代码,说明了如何正确地获取整数变量的值: x = 5 print(x) # 输出 5 如果在代码中使用了.value属性,就会出现错误提示"'int' object has no attribute 'value'",因为整数类型并没有这个属性。 综上所述,'int' object has no attribute 'value' 的错误提示是由于错误地使用.value属性对整数类型的变量进行操作引起的。为了解决这个问题,只需要直接使用整数变量即可获取其值。 ### 回答3: “int”类型对象没有“value”属性。 这个错误通常是因为我们试图在“int”对象上调用一个不存在的“value”属性。在Python中,整数类型“int”是一种不可变类型,没有“value”属性。因此,当我们尝试访问“int”对象的“value”属性时,就会出现此错误。 要解决此问题,我们需要检查代码中使用“value”属性的部分,并确保我们使用它的正确语法和对象类型。通常情况下,我们应该能够通过删除或更改相应的代码行来解决此错误。 此外,还有一种可能是我们错误地将一个“int”对象赋值给一个包含“value”属性的自定义类的实例。在这种情况下,我们需要检查我们的代码,并确保我们正确地使用了自定义类以及它的属性和方法。 总之,当我们遇到“int”对象没有“value”属性的错误时,我们应该仔细检查我们代码中与“int”对象及其属性相关的部分,并修复可能存在的语法或逻辑错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值