[Python] How do I join filter strings into a url string?

Discussão em 'Python' iniciado por Stack, Setembro 24, 2024.

  1. Stack

    Stack Membro Participativo

    I am building a URL query, that allows the filtering of multiple fields. The filtering (e.g. from a form) is stored as pair values: column and FILTER. I am storing the filters as a list of pairs.

    I want to join a list of paired values (column, FILTER) into a url string.

    sample:

    "$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}"


    url_str returns:

    "$filter=contains(level%2C%27FIRST%27)+and+contains(['name', 'OFFICE']%2C%27+and+contains(['number', 'FIVE']%2C%27"


    desired string:

    "$filter=contains(level%2C%27FIRST%27)+and+contains(name%2C%27OFFICE%27)+and+contains(number%2C%27FIVE%27)"


    Is there a simpler way instead of storing the columns and filters in a list

Compartilhe esta Página