在Python中操作Redis数据库,我们一般使用的第三方库为redis-py。
在redis-py 3.0之前,如果我需要添加一个有序集合的值,我是这样写的代码:import redis
client = redis.Redis()
client.zadd('key', value1, score1, value2, score2)
在redis-py 3.0及以后的版本,上面这种写法会导致如下的报错:>>> client.zadd('test_zadd', 'name', 1)
Traceback (most recent call last):
File "", line 1, in
File "/Users/xieqiankun/.local/share/virtualenvs/test_redis-tFyJIHTO/lib/python3.6/site-packages/redis/client.py", line 2263, in zadd
for pair in iteritems(mapping):
File "/Users/xieqiankun/.local/share/virtualenvs/test_redis-tFyJIHTO/lib/python3.6/site-packages/redis/_compat.py", line 123, in iteritems
return iter(x.items())
AttributeError: 'str' object has no attribute 'items'
在新版本中,正确的写法为:import redis
client = redis.Redis()
client.zadd('key', {value1: score1, value2: score2})