Как я могу разделить строку в Python на основе и / или параметров эффективно? - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть строка ввода типа ((display_name содержит 'Fw-1111' или display_name содержит 'P1') и site_name содержит 'device').

Ввод может иметь любую комбинацию фильтра в любом порядке.

Я хочу получить каждый фильтр отдельно в зависимости от типа.Например, все фильтры на display_name должны объединяться в единый ввод (например, display_name содержать 'Fw-1111' или display_name содержать 'P1').

Я использовал разделенную строку, чтобы проанализировать ее и получить фильтры отдельно.Хотя я мог сделать, но код неуклюжий.Я думаю, что должен быть лучший способ достичь этого в Python.Пожалуйста, дайте мне знать эффективный способ добиться этого.

Это мой пример неуклюжего кода:

column_search =  ((display_name contain 'Fw-1111' or display_name
contain 'P1') and site_name contain 'device')

col_search_list = column_search.split('and')
if 'display_name' in col_search_list[0]:
     policy_filter = col_search_list[0]
elif 'site_name' in col_search_list[0]:
     site_filter = col_search_list[0]
if len(col_search_list) >1:
     if 'display_name' in col_search_list[1]:
         policy_filter = col_search_list[1]
     elif 'site_name' in col_search_list[1]:
         site_filter = col_search_list[1]

1 Ответ

0 голосов
/ 07 февраля 2019

Цикл над "col_search_list":

col_search_list = column_search.split('and')
for term in col_search_list:
    if 'display_name' in term:
         policy_filter = term
    elif 'site_name' in term:
         site_filter = term
...