Печать в CSV вызывает пробел между каждым символом?

Я пытаюсь распечатать в CSV с Python3.6. Когда я печатаю в консоли, он выглядит нормально, но когда я пытаюсь печатать в CSV, он печатает l i k e | | t h i s,

то есть с пробелами между каждым символом, и | между каждым пробелом.

Я вызываю функцию перевода здесь.

Пример ответа:

{
  "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

Кто-нибудь может предложить какое-нибудь руководство, пожалуйста?

1 ответ

Writerow принимает итеративное значение в качестве аргумента, поэтому, когда вы даете ему строку из одной строки, она обрабатывает строку как итерируемую и записывает ее со стандартным пространством (разделителем, установленным ранее) между каждым элементом.

Вам нужно будет либо задать строку в списке с помощью [translation], либо дать ей список.

Другие вопросы по тегам