googletrans python api-无法解码JSON对象

Adi*_*hak 6 python google-translate python-2.7

在一个文件中,包含有印地语和英语单词的句子。我正在尝试将印地文中的单词转换为英语,最终使每个单词都变为英语。因此,对于此转换,我使用python的googletrans api。以下是文件的句子:

?????  
politicians have to do the work that is not necessary .
Let me tell you about a child
This percentage is more than Hindus in India.
- John ???????
We don't want to say that they're not ?????
%{APPNAME} wants to send ????? but you need to be signed in in Chrome.
Important Size
User authentication required for VPN connection '%s'...
??? Width
Reset
2.???????? ????? by ?????
Suhasi Goradia Dhami
The last part of these Vedas is called ??????
???????
The Governor of Kashmir was arrested by this enterprise , but his 
voice was given to his voice .
It is the condition of people before you.
In fact, not the ???? ???? ???? has to start the ?????
When there are two men , they are , then , the past , and the future  
becomes a sense of mind , and , then , , in the future , everything is 
written in the past .
And what we do is that they are wrong
In recent decades there is a lot of electricity and its differences in 
the ????? of ?????? ????? and its extreme effect is ?????
It may be that you want you to support a special school , a special 
school , or a free school , or a free school .
Display Mapping
Please ensure that you use the correct form .
There are two people here . ”
vivacity
Manu Bhandari
Category : Religious Book
This period is ??????? by ?????
“ It ' s right . ”
So there are justice
The e-mail applications will be added to the same day .
Allow login if all write permissions on user's home directory
???????(&D)
Great Britain at the 2008 Summer Olympics
The first two were tried to ?????? the case of the two ???????? .
The people of the higher number and the people of the higher row of         
the higher and higher class has to be told that the new education of 
the new education has to be laid down .
In recent Nepal the Government service is present by the Government 
service and modern ????????
It is 5 years old, it can be dissolved before it
Under the Sessions Court , the court had a right to decide for Rs 200 
.
displacements and economic damage and economic damage are due to the 
evidence of the growing population of the population of population , 
though the ???????? area may be less frequently due to the ???????? of ??????? 
.
?????? is a popular woman .
Even in the water of water , the 0.001 ??????? of hydrogen ??????? in the 
water is ?? .
Islam is the second religion of Islam on the basis of ????????? ???? the  
second religion of ??????
This changed slowly
As a result of the genetic disease of one , the genetic disease of all 
these diseases in the same disease is the rules of the ???? of the ???????  
.
He felt like a long dream , and his hands ??? with his hands .
Later , the financial institutions are ?????? -LRB- Last 50 per cent -
RRB- and the common people of the common people .
??????? ???
Aurangzeb
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import googletrans
import codecs
import supportedLang

gs = googletrans.Translator()

fr =  codecs.open("11th.txt","r").readlines()

fw = open("translatedOpenNMT.txt","w")

count = 1
for i in fr :
     print count
     count  = count+1
     i = i.strip()
     lst = i.split(' ')
     k = list()
     string = str()
     for j in lst:
          lang_lst = gs.detect(j)
          lng = lang_lst.lang
          if lng == 'hi':
          word_lst = gs.translate(j)
          word = str(word_lst.text) 
          else:
             word = str(j) 
          k.append(word)
     string = ''.join(str(x)+' ' for x in k)
     fw.write(string+'\n')
Run Code Online (Sandbox Code Playgroud)

当遇到以下行时:

  Later , the financial institutions are ?????? -LRB- Last 50 per cent 
  -RRB- and the common people of the common people .
Run Code Online (Sandbox Code Playgroud)

它显示以下错误:

   Traceback (most recent call last):
   File "cgtrans.py", line 23, in <module>
   lang_lst = gs.detect(j)
   File "/usr/local/lib/python2.7/dist-
        packages/googletrans/client.py", line 207, in detect
   data = self._translate(text, dest='en', src='auto')
   File "/usr/local/lib/python2.7/dist-
        packages/googletrans/client.py", line 63, in _translate
   data = utils.format_json(r.text)
   File "/usr/local/lib/python2.7/dist-packages/googletrans/utils.py", 
   line 51, in format_json
   converted = json.loads(text)
   File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
   return _default_decoder.decode(s)
   File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
   obj, end = self.raw_decode(s, idx=_w(s, 0).end())
   File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
   raise ValueError("No JSON object could be decoded")
   ValueError: No JSON object could be decoded
Run Code Online (Sandbox Code Playgroud)

那么如何解决这个问题呢?

小智 1

您可能会将返回的Detected(lang=hmn, confidence=0.17513999)字符串转换为 JSON 格式,这实际上会产生错误。避免这样做,因为我已经检查过一切正常。

简单地写——

st = googletrans.Translator().detect('-LRB-') print( st.lang)

输出-u'hmn' 并且没有给出任何错误。