Реализация условия совпадения с циклом for и if в python - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть данные json, как показано ниже, и у меня есть один URI для сопоставления в каждом поле.Если совпадение найдено, не переходите к следующей итерации [fields].Концепция заключается в том, что пользователи нажали URL после поиска.Если пользователь щелкнул 3-й URL, тогда соберите 1, 2, 3 значения данных.Не переходите к 4-му значению.

Если пользователь щелкнул 5-й URL-адрес, тогда соберите 1-е-5-е поля uri и выйдите из этого объекта json.Возьмите новый объект json и выполните ту же процедуру.

[document]-> [fields1] -> [uri]
[document]-> [fields2] -> [uri]
[document]-> [fields3] -> [uri]
..... 
.. till 20-30 times. 

    I have written below code, but the above logic is not working. Kindly help on this. 



 uri='http://abcd.com/123.html'
    print(uri)
    for index_srch_log,row_srch_log in df_search_log_mongo.iterrows():
        RESPONSE = row_srch_log['RESPONSE']
        json_response = json.loads(RESPONSE)
        if 'documents' in json_response:
            field_data=json_response['documents']

            for row_resp_list in field_data:
                print('uri:',row_resp_list['fields']['uri'])
                match_found=False
                for i in row_resp_list['fields']['uri']:
                    print('i',i)

                    if uri == i:
                        print('yes matched')
                        match_found=True
                        break
                        print('found')
                    else:
                        print('not matched')
                        match_found=False
                    if match_found==True:
                        break

Вывод:

uri: ['http://abcddsc779072.html']
i value: http://abcddsc779072.html
not matched
uri: ['http://abcddsc932618.html']
i value: http://abcddsc932618.html
yes matched

- здесь следует остановиться и получить следующий объект ответа из DF.- но это снова продолжается со следующими [полями] данными.

  uri: ['http://abcddsc988555.html']
    i value:  http://abcddsc988555.html
    not matched
    uri: ['http://abcddsc1094909.html']
    i value: http://abcddsc1094909.html
    not matched

1 Ответ

0 голосов
/ 27 ноября 2018

Вы не нарушаете внешний цикл.Рассмотрим следующие изменения:

    if 'documents' in json_response:
        field_data=json_response['documents']

        for row_resp_list in field_data:
            print('uri:',row_resp_list['fields']['uri'])
            match_found=False
            for i in row_resp_list['fields']['uri']:
                print('i',i)

                if uri == i:
                    print('yes matched')
                    match_found=True
                    break
                else:
                    print('not matched')

            if match_found:
                break
...