Python textblob转换API错误

Python textblob转换API错误,python,translation,textblob,Python,Translation,Textblob,我在Windows上使用Python2.7.10中的textblob已经有一段时间了,出乎意料的是,它停止了工作。使用两个独立的虚拟机以及在OSX上进行测试会产生相同的错误 测试来自的简单代码段: 产生一个错误: 文件“test.py”,第3行,打印(en_blob.translate(to='es')) 翻译文件“C:\Python27\lib\site packages\textblob\blob.py”,第509行 from_lang=from_lang,to_lang=to) 文件“C:

我在Windows上使用Python2.7.10中的
textblob
已经有一段时间了,出乎意料的是,它停止了工作。使用两个独立的虚拟机以及在OSX上进行测试会产生相同的错误

测试来自的简单代码段:

产生一个错误:

文件“test.py”,第3行,打印(en_blob.translate(to='es'))
翻译文件“C:\Python27\lib\site packages\textblob\blob.py”,第509行
from_lang=from_lang,to_lang=to)
文件“C:\Python27\lib\site packages\textblob\translate.py”,第45行,在translate中
raise NotTranslated('转换API返回的输入字符串未更改')
textblob.exceptions.NotTranslated:Translation API返回了输入字符串
不变。

如何调试此错误?

如文档中所述,Textblob使用

显然,这个(未记录的)API改变了它的输出格式。我可以使用以下代码片段成功执行请求:

import requests
url = 'http://translate.google.com/translate_a/t'
params = {
    "text": "Simple is better than complex", 
    "sl": "en", 
    "tl": "es", 
    "client": "p"
}
print(requests.get(url, params=params).content)

>> '"Simple es mejor que complejo"'
在textblob的源代码中,代码表示一种
json
编码方法,但显然谷歌在这里决定简单确实比复杂好


这一问题已在中提到

正如@Gijs所提到的,谷歌翻译API发生了变化。这导致TextBlob的翻译和语言检测功能停止工作


我已经提交了一个解决问题的方法。

您只需设置
from_lang
参数,告诉您要从哪种语言翻译:

en_blob = TextBlob(u'Simple is better than complex.')
print(en_blob.translate(from_lang='en', to='es'))

根据我的经验,从_lang参数引入
并不能解决问题。
我已经修复了从另一个前端调用Google的翻译API,而不是通过textblob。

我在语言检测而不是翻译方面也面临同样的问题。你能帮助我理解我如何用上面的格式做同样的事情吗。
import requests
url = 'http://translate.google.com/translate_a/t'
params = {
    "text": "Simple is better than complex", 
    "sl": "en", 
    "tl": "es", 
    "client": "p"
}
print(requests.get(url, params=params).content)

>> '"Simple es mejor que complejo"'
en_blob = TextBlob(u'Simple is better than complex.')
print(en_blob.translate(from_lang='en', to='es'))