将文件打印到CSV格式时,每个字符之间会出现空格?

3

我正在尝试使用Python3.6打印到CSV。在控制台上打印时,它看起来很好,但是当我尝试打印到CSV时,它会打印出l i k e | | t h i s

即每个字符之间有空格,并且在每个空格之间有|。

我正在调用此处的translate函数。

示例响应:

{
  "translations": [{
    "translation": "Hola"
  }],
  "word_count": 1,
  "character_count": 5
}

以下是相关摘录:

with open('C:\\Users\\SimonTheKing\\Desktop\\file.csv', 'w') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)


    # Print the contents
    for x in range(len(first_column)): #iterates over every row in an xlsx
        translation = language_translator.translate(
            model_id='123',
            text=first_column[x].value #reads from openpyxl xlsx
        )
        print(translation) #prints as expected
        spamwriter.writerow(translation) #prints a space between every char

请问有人可以提供一些指导吗?


3
“Simon the King”可能需要注意一下delimiter=' ' - Mawg says reinstate Monica
1
@Mawg 哦天啊,这很尴尬。它不允许我将其设置为null,那我可以将其设置为什么? - Simon Kiely
也许是逗号的问题?尝试完全省略它(并且可能将 quotechar 更改为逗号)? - Mawg says reinstate Monica
请查看http://www.pythonforbeginners.com/systems-programming/using-the-csv-module-in-python/。 - Mawg says reinstate Monica
1
尝试使用 spamwriter.writerow([translation]) - pschill
1个回答

4

Writerow接受一个可迭代对象作为参数,因此当您给它一个单行字符串时,它会将该字符串视为可迭代对象,并在每个元素之间使用先前设置的标准空格(分隔符)进行写入。

您需要将该行设置为带有[translation]的列表或直接给它一个列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接