@vadimeasy

Как выполнять последовательную проверку данных в Google Seets?

Есть таблица, (полностью ключ показать не могу) здесь я считываю ключ и ID, ID - это идетификатор страницы в рабочем комментарии. Сейчас моя программа берёт ключ из первого столбца, выполняет провеку на определенном сайте и уже в зависимости от результата проверки, она либо отправляет комментарий в рабочее простанство, что с ключем всё хорошо и можно пользоваться.
618a60f3cde05804058166.png
Проблема в том, что у меня было 76 ключей, сейчас из 130, а моих сил прогаммирования хватило на то чтобы прописать обаботку каждой ячейки с записью в пееменную и проверкой. У меня получилось 4000 строк на 76 ключей, может есть какой-то способ попроще, как-то записать проверку в функцию и вызывать её на каждую пееменную, но никак не могу разобраться, как и спомощью чего мне это сделать. Вот так выглядит блок на 2 ячейки:
try:
    values_guid = service.spreadsheets().values().get(
        spreadsheetId=spreadsheet_id,
        range='A3:A3',
        majorDimension='COLUMNS'
    ).execute()
    res = values_guid['values'][0][0]

    values_id1 = service.spreadsheets().values().get(
        spreadsheetId=spreadsheet_id,
        range='B3:B3',
        majorDimension='COLUMNS'
    ).execute()
    res_id2 = values_id1['values'][0][0]
    res_id_2 = int(res_id2)


    try:
        options = Options()
        options.headless = True
        # driver = webdriver.Chrome()
        driver = webdriver.Chrome(chrome_options=options)
        
        driver.get(url=url)
        driver.find_element_by_tag_name('input').send_keys(res)
        driver.find_element_by_tag_name('button').click()
        time.sleep(0.5)

        if driver.find_elements_by_xpath('//span[@class="label label-success"][1]'):
            if True:
                request = pyrus.models.requests.TaskCommentRequest(text="Подтверждена, убери пожалуйса свой GUID из этой таблицы https://clck.ru/Yh****, action="")
                task = pyrus_client.comment_task(res_id_2, request).task
                res = print('Подтверждена, убери пожалуйса свой GUID из этой таблицы https://clck.ru/YhBqZ')
                    results = service.spreadsheets().values().batchUpdate(spreadsheetId = spreadsheetId, body = {

                
        elif driver.find_elements_by_xpath('//span[@class="label label-warning"][1]'):
            if True:
                request = pyrus.models.requests.TaskCommentRequest(text="", action="")
                task = pyrus_client.comment_task(res_id_2, request).task
                print('')


        elif driver. find_elements_by_tag_name("tbody"):
            if True:
                request = pyrus.models.requests.TaskCommentRequest(text="Площадка не найдена", action="")
                task = pyrus_client.comment_task(res_id_2, request).task
                print('Ошибка, площадка не найдена.')


    except Exception as ex:
        print(ex)
    finally:
        driver.close()
        driver.quit()
        
except KeyError: 
    pass

Так же хотелось бы узнать, как мне можно, как то при определённом условии из таблицы стерать ключ и ID, нашел один метод, но он почемуто не работает внутри if.
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
У меня получилось 4000 строк на 76 ключей

Я надеюсь, вы знакомы с понятием цикла? o_O
range='A3:A3',

Просто генерируете значение range.
for row in range(3, 130):
    values_guid = service.spreadsheets().values().get(
        spreadsheetId=spreadsheet_id,
        range=f'A{row}:A{row}',
        majorDimension='COLUMNS'
    ).execute()
    #ну и так далее

Вместо цикла for по фиксированному диапазону можно сделать цикл while, и прерывать его когда наткнётесь на пустую ячейку. Тогда не придётся прописывать количество ячеек.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы