如何解决“TypeError:JSON对象必须是string、bytes或bytearray,而不是“NoneType”错误,在使用googletrans进行翻译时?

ev7lccsx  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(257)

如何在使用googletrans翻译时解决TypeError?TypeError发生在'result = translator.translate(messages[i],dest =' en ')'上,我无法理解,因为结果的类型是'googletrans.models. Translated'。
我用了可乐。我还做了一个文件夹名为“翻译”和文本文件(0.txt,1.txt...)在“内容”文件夹。
下面是我的代码:

!pip install googletrans==4.0.0rc1
import os

from googletrans import Translator
translator = Translator(service_urls=[
      'translate.google.com',
      'translate.google.co.kr',
])

messages = []
DATA_PATH = '/content/'

for i in range(100):
  file = open(f'{DATA_PATH}{i}.txt', "r")

  msg = [l.strip('\\n') for l in file.readlines()]
  messages.append(' '.join(msg))

for i in range(100):
  result = translator.translate(messages[i], dest='en')

  file_path = os.path.join("translation", f"{i}.txt")
  with open(file_path, "w") as file:
        file.write(result.text)

字符串

swvgeqrz

swvgeqrz1#

问题是目录中的一个文本文件为空。因此,messages变量是一个空字符串,您将收到来自转换器类的错误。
解决这个问题的一种方法是找到空字符串并向其添加消息。例如,您可以使用的一种方法是:

messages = []

for i in range(100):
  file = open(f'{DATA_PATH}{i}.txt', "r")
  msg = [l.strip('\\n') for l in file.readlines()]
  messages.append(' '.join(msg))

for idx,message in enumerate(messages):
  if message == '':
    messages[idx] = 'Empty'

字符串

相关问题