berezuev
@berezuev
#define TRUE FALSE

Python3: как отфильтровать пустые значения в словаре?

Вот так примерно выглядит инициализация класса
def __init__(self, foo=None, bar=None, somevariable=None, anotheronevariable=None):
    params = {
        "a": self.foo,
        "b": self.bar,
        "c": self.somevariable,
        "d": self.anotheronevariable
    }

На основе этого затем генерируется строка гет-запроса (urllib.parse.urlencode(params))

Так вот, некоторые переменные в классе (self...) равны None, и я хочу их удалить из словаря.

Пробовал код, который везде рекомендуют на Stackoverflow, но он никак не изменяет словарь.
params.update((k, v) for k, v in params.items() if v is not None)


ЧЯДНТ?
  • Вопрос задан
  • 2995 просмотров
Решения вопроса 1
params = {k: v for k, v in params.items() if v is not None}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bobrovskyserg
@bobrovskyserg
> некоторые переменные в классе (self...) равны None, и я хочу их удалить из словаря.
Может, ноны вам и не нужны? Тогда так:
class ONE():
    def __init__(self, **kwargs):
        print(kwargs)

one = ONE(foo="foo", bar="bar")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы