ни как не могу сообразить и найти толковый ответ в интернете, помогите пожалуйста))
Имеется скрипт, который отсылает строку из файла csv в яндекс переводчик, задача в следующем:
1. Взяли строку
2. Отправили всю строку кроме первого столбца в Я. Переводчик
3. Получили код 200 - если всё ок, удалили строку из файла которую брали и записали уже переведённую в новый файл.
4. Если не получили код 200, строку оставили в файле.
Всё в принципе и так работает, но на апи ключ есть ограничения и когда апи ключ заблокируют(более 1млн символов в день) будет код не 200, а строки терять не очень хочется, а вручную проверять достаточно геморойно, т.к. строк очень много.
Скрипт который имеется:
import requests
import time
import csv
def main():
spamReader = csv.reader(open('text.csv', encoding="utf-8", newline=''), delimiter=',')
for row in spamReader:
my_text = row[1:]
old = row[0]
# Отправка запроса в Яндекс переводчик
time.sleep(2)
s = requests.Session()
url = 'https://translate.yandex.net/api/v1.5/tr.json/translate'
from_data = {
'lang': 'th-ru',
'key': 'API ключ__Бесплатный в яндексе',
'text': my_text
}
answ = s.post(url, data=from_data)
print(answ.json()) #{'code': 200, 'lang': 'th-ru', 'text': ['Результат перевода первого столбца', 'Результат перевода второго столбца']}
if answ.json()['code'] == 200:
result = answ.json()['text']
result = [old] + result
print(result)
# Записываем результат в новый файл
with open('result_file.csv', 'a', newline='', encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(result)
f.close()
else:
print('Необходимо поменять API ключ')
if __name__ == '__main__':
main()