Как объединить строки фильтра в строку URL?Python

Программы на Python
Anonymous
Как объединить строки фильтра в строку URL?

Сообщение Anonymous »

Я создаю URL-запрос, который позволяет фильтровать несколько полей. Фильтрация (например, из формы) сохраняется в виде парных значений: столбец и FILTER. Я храню фильтры в виде списка пар.
Я хочу объединить список парных значений (столбец, FILTER) в строку URL.
Пример:

Код: Выделить всё

"$filter=contains(column1%2C%27FILTER1%27)+and+contains(column2%2C%27FILTER2%27)+and+contains(column3..."

Код: Выделить всё

filter_lists = [['level', 'FIRST'], ['name', 'OFFICE'], ['number', 'FIVE']]
filter1 = f"contains({filter_lists[0][0]}%2C%27{filter_lists[0][1]}%27)"
filter_rest = [[f"+and+contains({item}%2C%27" for item in filter_lists[1:]] for subitem in filter_lists[0]][0]

filter_all = "".join(filter_rest)
url_str = f"$filter={filter1}{filter_all}"
возвращает:

Код: Выделить всё

"$filter=contains(level%2C%27FIRST%27)+and+contains(['name', 'OFFICE']%2C%27+and+contains(['number', 'FIVE']%2C%27"
нужная строка:

Код: Выделить всё

"$filter=contains(level%2C%27FIRST%27)+and+contains(name%2C%27OFFICE%27)+and+contains(number%2C%27FIVE%27)"
Есть ли более простой способ хранения столбцов и фильтров в списке

Вернуться в «Python»