我在尝试将数据加载到 Python 中的 Redis 时收到此错误。
这是代码:
zkey = 'test'
k = 15648
nval = '15648-barry'
redis.zadd(zkey, k, nval)
这是错误:
Traceback (most recent call last):
File "test.py", line 131, in main
redis.zadd(zkey, k, nval)
File "/usr/local/lib/python3.6/dist-packages/redis/client.py", line 2320, in zadd
for pair in iteritems(mapping):
File "/usr/local/lib/python3.6/dist-packages/redis/_compat.py", line 122, in iteritems
return iter(x.items())
AttributeError: 'int' object has no attribute 'items'
我在 Github 上发现了这个问题:https://github.com/rq/rq/issues/1014
问题已关闭,解决方案应该是安装 RQ 0.13我跑了:
sudo pip3 install rq
它成功安装。然后重新启动了重新服务器。
但是我仍然遇到同样的错误。
这个问题有没有其他解决方案?
规格:
Python 3.6.7
RQ 0.13
Redis-Server 4.0.9
Pip3 redis 3.1.0
Ubuntu 18.04.1 LTS
不要安装任何新内容。
根据错误,转到指定的文件,您会发现:
# "/usr/local/lib/python3.6/dist-packages/redis/client.py"
def zadd(self, name, mapping, nx=False, xx=False, ch=False, incr=False):
他们需要名字和分数作为字典传递。
在这里,mapping
是一本名称字典 ->分数。
按如下方式进行:
zkey = 'test'
dict = {}
dict['15648-barry'] = 15648
redis.zadd(zkey,dict)
好吧,
你可以使用熊猫。Dataframe.todict((