Python и Google Sheets API: Загружаем данные | Часть 2 | Google Sheets API Python
Vložit
- čas přidán 11. 07. 2024
- ↩️ Прошлая серия: • Парсим сайты конкурент...
🔥 Курс по Python: python.smysl.io/
📢 Канал в Телеграме: t.me/kulichevskiy
СОДЕРЖАНИЕ
00:00 - Начало
00:30 - Что такое API
03:08 - библиотека gspread
04:13 - получаем доступ к API
08:30 - создаем сервисный аккаунт
14:11 - загружаем данные в Google-таблицу
ОБО МНЕ
👋 Привет! Меня зовут Алексей. Я работаю в IT, занимал ключевые позиции в Групоне, Gett, Яндекс-Логистике и Osome. Я люблю преподавать, и у меня получается делать сложные вещи понятными. Хочу помогать людям не бояться нового и понимать, как технологии могут сделать нашу жизнь лучше.
🔥 Курс про автоматизацию рутины с помощью Python: python.smysl.io/
Понятно объясняешь-далеко не у всех так понятно. Спасибо за такой классный труд
Спасибо дружище, ты лучший!!!
Молодец, спасибо за информацию!
Ты просто лучший, мужик!
Мужик ты бог просто, спасибо
Ну ты крут)))
спасибо большое
Супер! Спасибо за подробные разъяснения, узнала очень много нового! Я не программист, но у меня все получилось. Я учусь кодить в гугл колаб, и там возникла проблема: AttributeError: module 'gspread' has no attribute 'service_account'. С помощью интернета проблему получилось решить. Причина в устаревшей версии библиотеки. По умолчанию колаб импортирует gspread 3.4.2. Установила версию 5.4.0 (!pip install gspread==5.4.0) и все сработало.
Кайф! Супер :)
Добрый день!
Подскажите, на какой должности можно работать с такими знаниями?
загрузили мы 20 строк, хочу чтобы при выполнении скрипта он каждый раз искал первую пустую строку и вписывал строки, чтобы подряд шло все)
Приветствую. Столкнулся с такой проблемой: если считывать около 100 строк, выходит ошибка, из за превышения какого то лимита.
Можете подсказать, как обойти это ограничение?
А можете точный текст ошибки написать?
И, идеально, если еще строчку кода, при которой ошибка возникает
@@kulichevskiy
Скорее всего здесь:
data_dict = {}
if base_index and approved_index and status_index != "Данные внесены": # and status_index is not None
for row_index, row in enumerate(all_values[2:], start=3): # Начинаем с третьей строки
status_value = row[status_index]
if status_value != "Данные внесены":
base_value = row[base_index]
approved_value = row[approved_index]
if approved_value: # Проверяем, что значение столбца "Утвержденная правка" не пустое
print("6")
data_dict.setdefault(base_value, []).append(approved_value)
# Добавляем статус правки в колонку "Статус правки" в той же строке
worksheet.update_cell(row_index, status_index + 1, "Данные внесены")
worksheet.update_cell(row_index, date_reference + 1, current_datetime)
print("7")
else:
print("8")
worksheet.update_cell(row_index, status_index + 1, "-")
worksheet.update_cell(row_index, date_reference + 1, "-")
print("9")
Между print("8") и print("9"):
скрин:
monosnap.com/file/6aDHTCEtX6EC4WeFNRsT9t2FPjWQJs
В сообщениях об ошибке самое ценное обычно в конце, а у вас образолось :(
No error handlers are registered, logging exception.
Traceback (most recent call last):
File "/Users/vladimirkalinin/Documents/drive-download-20240215T211616Z-001/1_NEURO-MANAGER-CHAT/5_noDOCKER/.venv/lib/python3.9/site-packages/telegram/ext/_application.py", line 1118, in __create_task_callback
return await coroutine # type: ignore[misc]
File "/Users/vladimirkalinin/Documents/drive-download-20240215T211616Z-001/1_NEURO-MANAGER-CHAT/5_noDOCKER/.venv/lib/python3.9/site-packages/telegram/ext/_basehandler.py", line 157, in handle_update
return await self.callback(update, context)
File "/Users/vladimirkalinin/Documents/drive-download-20240215T211616Z-001/1_NEURO-MANAGER-CHAT/5_noDOCKER/PY_FRONT/tgbot_exp.py", line 248, in google_back_in_data
worksheet.update_cell(row_index, date_reference + 1, "-")
File "/Users/vladimirkalinin/Documents/drive-download-20240215T211616Z-001/1_NEURO-MANAGER-CHAT/5_noDOCKER/.venv/lib/python3.9/site-packages/gspread/worksheet.py", line 712, in update_cell
data = self.client.values_update(
File "/Users/vladimirkalinin/Documents/drive-download-20240215T211616Z-001/1_NEURO-MANAGER-CHAT/5_noDOCKER/.venv/lib/python3.9/site-packages/gspread/http_client.py", line 157, in values_update
r = self.request("put", url, params=params, json=body)
File "/Users/vladimirkalinin/Documents/drive-download-20240215T211616Z-001/1_NEURO-MANAGER-CHAT/5_noDOCKER/.venv/lib/python3.9/site-packages/gspread/http_client.py", line 112, in request
raise APIError(response)
gspread.exceptions.APIError: {'code': 429, 'message': "Quota exceeded for quota metric 'Write requests' and limit 'Write requests per minute per user' of service 'sheets.googleapis.com' for consumer 'project_number:909537275789'.", 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'RATE_LIMIT_EXCEEDED', 'domain': 'googleapis.com', 'metadata': {'quota_limit': 'WriteRequestsPerMinutePerUser', 'service': 'sheets.googleapis.com', 'consumer': 'projects/909537275789', 'quota_location': 'global', 'quota_limit_value': '60', 'quota_metric': 'sheets.googleapis.com/write_requests'}}, {'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Request a higher quota limit.', 'url': 'cloud.google.com/docs/quota#requesting_higher_quota'}]}]}