Ошибка Python Google Translate API

Я очень новичок в Python и пытаюсь перевести несколько ключевых слов с помощью Google API. У меня есть файл Excel с 3000 ключевыми словами, которые являются смесью английского, испанского, немецкого и т. Д. Попытка перевести все на английский.

Однако каждый раз, когда я запускаю свой код, я получаю ошибку с разными значениями. Иногда мой код выдает ошибку по 810-му ключевому слову, а иногда выдает ошибку по 1038-му ключевому слову. И я даже не редактирую макет файла.

JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0)

Ниже мой код:

from googletrans import Translator
import pandas
import math
import time
df = pandas.read_excel(r'Desktop/python_keywords.xlsx')
keywords = df['Keywords']
Translate = []
translator = Translator()

for i in range(0,len(keywords)):
    word = translator.translate(str(keywords[j])).text
    Translate.append(word)

2 ответа

Обычно эта ошибка происходит из-за ограничения в 15 КБ в Googletrans API.

JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0)

Рассмотрите возможность уменьшения количества символов.

Какая строка вашего кода дает вам эту ошибку? Посмотрите на трассировку ошибок
Давайте начнем с ваших итераторов: он объявлен как i, но тогда вы используете j, Затем проверьте длину вашего запроса. Он не должен быть длиннее 5 тыс. Символов в соответствии с JSONDecodeError с использованием Google Translate API с Python3.
Во всяком случае, похоже, что API отвечает с пустым JSON, и вы должны добавить хотя бы try .. except чтобы избежать этой ошибки, вот что:

try:  
    word = translator.translate(str(keywords[j])).text  
except JSONDecodeError as err:  
    print(err)  # if you want to see when error happens
else:
    Translate.append(word)
Другие вопросы по тегам