【发布时间】:2019-06-03 06:42:13
【问题描述】:
我正在尝试编写一个 python 程序来获取多种语言的谷歌翻译结果并将它们写入 csv 文件。大多数代码都有效,但我遇到了 unicode 问题。
当前代码:
WordTable = open('Translated.csv', 'w', newline="", encoding = 'utf-8-sig')
WordWrite = unicodecsv.writer(WordTable)
for row in WordOut:
print(row[0])
row = row + [Translator().translate(row[0], src = 'en', dest='es').text]
row = row + [Translator().translate(row[0], src = 'en', dest='ar').text]
row = row + [Translator().translate(row[0], src = 'en', dest='zh-CN').text]
row = row + [Translator().translate(row[0], src = 'en', dest='ru').text]
print(len(row), row)
WordWrite.writerow(row)
在这里和其他地方阅读后我所尝试的:
当前代码:导致“UnicodeEncodeError: 'charmap character can't encode characters'。当根本没有使用编码命令或选项时也会发生这种情况。
-
将翻译行改为:
row = row + [Translator().translate(row[0], src = 'en', dest='ru').text.encode('utf-8-sig')]
或等效:代码运行,但输出较长版本的“b'\xef\xbb\”等。
如果可能的话,我还对正在发生的事情的解释感兴趣(什么格式,何时更改,如何输入等)。我在别处读到的解释可能会让人感到困惑。
编辑:这是在 Python 3.4 中
【问题讨论】:
-
请提供您的
Translated.csv的示例 -
请澄清两件事:(1)UnicodeEncodeError 是来自
print()表达式还是来自WordWrite.writerow()行? (2) 你使用的是 Python 2 还是 Python 3? -
后期添加:在尝试重新测试所有内容以给出更好的答案后,问题基本得到解决。代码如下。
标签: python csv unicode export-to-csv