на главную обо мне контакты катра сайта
Блог Создание и продвижение сайтов
 

python: работа со строками и словарями, формирование sql запросов

-

Иногда приходится формировать sql запроса (where, set) из словаря, то есть имеющиеся значения вроде этих:

val = {'a': 1, 'c': 3, 'b': 2, 'd': 4}

необходимо представить в виде такой строки:

where = "`a`=Ƈ' and `c`=Ɖ' and `b`=ƈ' and `d`=Ɗ'"

Можно изобретать велосипед с циклами и дополнительными условиями, чтобы не поставить лишний and , можно воспользоваться замечательным синтаксисом python

a = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5 }

where = " and ".join(["`%s`='%s'"%(k,a[k]) for k in a.keys()  ])

Выглядит страшно, но всё просто: join объединяет список разделяя значения через " and ", а внутри [] скобок словарь преобразуется в список строк соответвутющих шаблону "`%s`='%s'", при этом всего одна строка и минимум ошибок

Зачем это нужно, а чтобы не встречать такого в чужом коде

def make_where(values):
    where = "where "
    for k in values:
        where += "`%s`='%s' and "%( k,values[k] )
    return where[:-4]

текст недоступен

другие страницы раздела

комментарии

Valid XHTML 1.0 Strict Читать в Яндекс.Ленте Вятка-на-Сети: Каталог ресурсов