получение "JSONDecodeError: Expecting value: line 1 column 1 (char 0)" при попытке преобразовать весь набор данных в engli sh с помощью Google Translate - PullRequest
0 голосов
/ 07 мая 2020
• 1000 элемент в unique_elements: 9 translator = Translator () ---> 10 переводов [element] = translator.translate (element) .text 11 12 print (translations)

6 кадров / usr / lib / python3 .6 / json / decoder.py в raw_decode (self, s, idx) 355 obj, end = self.scan_once (s, idx) 356 за исключением StopIteration как err: -> 357 raise JSONDecodeError ("Ожидаемое значение", s, err.value) from None 358 return obj, end

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

1 Ответ

0 голосов
/ 21 мая 2020

Я работал с файлом XML для перевода и получал эту ошибку «JSONDecodeError: ожидаемое значение: строка 1, столбец 1 (символ 0)». Когда я искал эту ошибку, я обнаружил, что некоторые специальные символы не переводятся. В этом случае   & etc. были для меня проблемой. Если в вашем тексте есть специальные символы, скопируйте и вставьте их на сайт Google Translate и посмотрите, есть ли ошибка.

Другой причиной этой ошибки может быть слишком большой запрос или ограничение на количество символов. Если вы используете список вместо строки, каждый индекс в вашем списке означает новый запрос на перевод. Если запросов слишком много, Google на время заблокирует ваш IP-адрес.

Собираю свои тексты в строковую переменную. Я добавляю [номер текста] в начало каждого текста и разделяю их символом / n, а затем отправляю на перевод. Like;

[1]First Text\n [2]SecondText\n [3]Third Text\n

Google Translate может переводить 10000 символов за один запрос, поэтому ограничение на количество символов для строковой переменной составляет 10000. Также добавляю таймер на 100 секунд между каждым запросом на выход из бана. Он работает для меня.

PS: Вы можете использовать список вместо строки. Вам просто нужно al oop вот так;

list[0] = max 10K characters Send to Translate timer for 100 seconds list[1] = max 10K characters Send to Translate timer for 100 seconds . .

...