【问题标题】:googletrans python api - No JSON object could be decoded errorgoogletrans python api - 没有 JSON 对象可以被解码错误
【发布时间】:2018-02-20 21:56:28
【问题描述】:

在一个文件中有包含印地语和英语单词的句子。我正在尝试将印地语中的单词转换为英语,最终使每个单词都变成英语。所以对于这个转换,我使用的是 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

这是我的代码:

#!/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')

当它遇到以下行时:

  Later , the financial institutions are फिलहाल -LRB- Last 50 per cent 
  -RRB- and the common people of the common people .

显示如下错误:

   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

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

【问题讨论】:

  • 您是否尝试过为codecs.open 指定编码?例如也许'utf-8'
  • @mgilson 是的,我已经尝试过了,但没有成功。
  • 我也有同样的问题。如果我找到解决方案,我会通知您。
  • 我也遇到了同样的问题。我跟着错误,似乎库正在将数据转换为 json,然后在翻译之前尝试对其进行解码。我手动搜索了我的数据,发现了表情符号。当我手动删除它们时,我不再收到错误消息。因此,您的数据中的某些内容在转换为 json 后无法解码。

标签: python python-2.7 google-translate


【解决方案1】:

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

简单写-

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2013-08-14
    相关资源
    最近更新 更多