Как сохранить значение None в поле хэша redis? - PullRequest
0 голосов
/ 28 января 2019

Я создаю структуру телефонной книги в redis, где структура одной записи выглядит примерно так:

phone:<phone_number>
     phone_no -> 9991119990
     name -> Jhon
     address - > '54 street, somewhere'

phone_no, name, address - это поля для phone:<phone_number> Key.может быть любым номером мобильного телефона.

Иногда адрес поля устанавливается пустым, т. е. нет в случае Python (как показано ниже)

p_details ={
       "name":"Roger"
       "address": None
}

И когда я пытаюсь сделать redis_client.hmset(phone:<phone_number>, p_details), яполучить следующую ошибку:

DataError: Invalid input of type: 'NoneType'. Convert to a byte, string or number first.

И да, мы можем сказать, что сохранение значений None не имеет смысла в некоторых случаях, но здесь я отправляю ответ обратно в API, который ожидает, что все ключи присутствуютв ответе, и если значения отсутствуют, то он ожидает None (что похоже на nil в redis).

Я не могу использовать здесь значения Sentinel или что-то вроде "" из-за других зависимостей приложения.

Можете ли вы предложить какой-либо способ хранения значения None (т. Е. Nil) в redis, соответствующего полю в хэше?

...