Добавить ключи и значения словаря в список Redis

Я пытаюсь добавить текущий словарь в список Redis, используя понимание словаря, а затем распечатать первые (также известные как текущие) ключи и значения этого списка. Я говорю текущий, потому что это процесс, который я буду продолжать с циклом while, чтобы список строился с течением времени, но мне всегда нужно обращаться к первым ключам/значениям.

Я уверен, что полностью разделываю это, но это то, что у меня есть:

adict = {"a":1,"b":2,"c":3}

{rserver.rpush("list",value) for value in adict}

print(float(rserver.lindex("list",0)))

Мне нужно вернуть список ключей и значений.

Помощь была бы очень признательна. Спасибо!


person Aaron Mazie    schedule 09.05.2018    source источник
comment
Вы должны звонить LRANGE вместо LINDEX.   -  person Itamar Haber    schedule 09.05.2018
comment
Если я выполню print(rserver.lrange(buylist,0,-1)) я верну только ключи. Мне нужно получить как ключи, так и значения.   -  person Aaron Mazie    schedule 09.05.2018
comment
В следующий раз, пожалуйста, опубликуйте воспроизводимый пример кода с импортом и т. Д., Также ваш оператор вставки (строка 2) не будет работать, потому что вы нажимаете клавиши вместо значений при использовании _ for i in adict; то, что вы хотите использовать, это _ for value in adict.values()   -  person mzoll    schedule 09.05.2018
comment
Я получаю только значения, выполняющие {rserver.rpush(list,value) для значения в adict.values()}. Как мне получить оба ключа: значения   -  person Aaron Mazie    schedule 09.05.2018
comment
для любого словаря вы можете получить доступ к (упорядоченному) списку .keys(), .values() и списку (ключ, значения) .items()   -  person mzoll    schedule 09.05.2018


Ответы (1)


Я не совсем уверен в том, что должен содержать ваш redis-list (пожалуйста, укажите ожидаемый результат в вопросе), но предполагая, что он должен в конце вставок выглядеть примерно так ["a:1", "b:1", "c:1"], вы можете добиться этого с помощью

adict = {"a":1,"b":2,"c":3}
for key,value in adict.items():
  rserver.rpush("list", ":".join([key, value]))

print(float(rserver.lindex("list",0))) #>>> "a:1"

(поскольку вы не указали, какой именно интерфейс rserver, немного сложно догадаться о его точном поведении)

person mzoll    schedule 09.05.2018