尝试使用谷歌翻译将整个数据集转换为英语时获得"JSONDecodeError: Expecting value: line 1 column 1 (char 0)"



我在堆栈溢出中看到了类似的问题,但我想更具体地说:使用谷歌翻译的整个数据集

translator = Translator()
df_en = df.copy()
translations = {}
for column in df.columns:
#translator = Translator()
unique_elements = df[column].unique() # Getting unique elements of the column
for element in unique_elements:
translator = Translator()
translations[element] = translator.translate(element).text
print(translations)

JSONDecodeError Traceback(上次调用的最近一次(在((unique_elements中的元素为8:9翻译器=翻译器((--->10个翻译[element]=翻译器.translate(element(.text1112打印(翻译(

6帧/raw_decode中的/usr/lib/python3.6/json/decode.py(self,s,idx(355 obj,end=self.scan_once(s,idx(356除了StopIteration作为错误:-->357从None引发JSONDecodeError("Expected value",s,err.value(358返回对象,结束

JSONDecodeError:应为值:第1行第1列(字符0(

我正在处理XML文件进行翻译,并收到错误"JSONDecodeError:应为值:第1行第1列(char 0("。当我搜索这个错误时,我发现一些特殊字符无法翻译。在这种情况下,  & etc.对我来说是个问题。如果你的文本中有特殊字符,请复制粘贴到谷歌翻译网站,看看是否有错误。

出现此错误的另一个原因可能是请求或字符限制过多。如果您使用列表而不是字符串,则列表中的每个索引都意味着一个新的翻译请求。如果有太多的请求,谷歌会暂时禁止你的IP。

我将文本收集在一个字符串变量中。我在每条文本的开头加上[文本编号],用/n分隔,然后发送到翻译。喜欢

[1]First Textn [2]SecondTextn [3]Third Textn

谷歌翻译可以在单个请求中翻译10000个字符,因此字符串变量的字符限制为10000。此外,我在每次请求逃离禁令之间添加了一个100秒的计时器。它对我有用。

附言:你可以用列表代替字符串。你只需要一个这样的循环;

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

最新更新