Redis-Py AttributeError: у объекта 'int' нет атрибута 'items' - PullRequest
0 голосов
/ 07 февраля 2019

Я получаю эту ошибку при попытке загрузить данные в Redis в Python.

Это код:

 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

, и он успешно установлен.Затем перезапустил redis-сервер.

Однако я все еще получаю ту же ошибку.

Есть ли другое решение этой проблемы?

Характеристики:

Python 3.6.7
RQ 0.13
Redis-Server 4.0.9
Pip3 redis 3.1.0
Ubuntu 18.04.1 LTS

1 Ответ

0 голосов
/ 18 февраля 2019

Не устанавливайте, устанавливайте ничего нового.
На основании ошибок и перехода к указанному файлу вы найдете следующее:

# "/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)
...