@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.
  • Вопрос задан
  • 42 просмотра
Решения вопроса 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, и прерывать его когда наткнётесь на пустую ячейку. Тогда не придётся прописывать количество ячеек.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы