最近在看《redis實戰》,在寫zadd時報錯
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\redis\client.py", line 2263, in zadd for pair in iteritems(mapping): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\redis\_compat.py", line 123, in iteritems return iter(x.items()) AttributeError: 'str' object has no attribute 'items'
上網找了一些語法,也都報其他的錯誤。花了幾天時間無果。突然看到提示信息里也是python的代碼呀,於是按提示要開文件,原來是這個位置錯誤
def iteritems(x): return iter(x.items())
就是說入參的第二個參數的類型不對,該類型有items屬性,字典類型符合,於是將書中的代碼修改為
conn.zadd('score:',{article:curtime+VOTE_SCORE}) conn.zadd('time:',{article:curtime})
問題解決!
python版本3.6.7
redis版本3.2.100 64位