解决:AttributeError: ‘str‘ object has no attribute ‘items‘

快来打我* 2022-12-29 14:16 371阅读 0赞

背景:最近在搭建代理池时有用到 redis,使用 redis 有序set 类型添加数据时报错,错误提示如下:

  1. Traceback (most recent call last):
  2. File "F:\ProxyPool\proxy_spider.py", line 53, in <module>
  3. spider.run()
  4. File "F:\ProxyPool\proxy_spider.py", line 48, in run
  5. self.process_proxy_spiders()
  6. File "F:\ProxyPool\proxy_spider.py", line 43, in process_proxy_spiders
  7. self.pool.add(proxy)
  8. File "F:\ProxyPool\redis_proxy_pool.py", line 30, in add
  9. return self.db.zadd(settings.PROXIES_REDIS_KEY, proxy, score)
  10. File "C:\Users\Administrator\Envs\fastapi_web\lib\site-packages\redis\client.py", line 2685, in zadd
  11. for pair in iteritems(mapping):
  12. File "C:\Users\Administrator\Envs\fastapi_web\lib\site-packages\redis\_compat.py", line 159, in iteritems
  13. return iter(x.items())
  14. AttributeError: 'str' object has no attribute 'items'

原因:最近 redis 包从 2.10升级到 3.0,zadd语法修改

  1. # 之前
  2. zadd(name,key1,value1,key2,value2)
  3. # 现在
  4. zadd(name,{ key1:value1,key2:value2})

发表评论

表情:
评论列表 (有 0 条评论,371人围观)

还没有评论,来说两句吧...

相关阅读