Почему делает csvwriter.writerow (), помещает запятую после каждого символа?

Нет никакого простого решения для этого. Конструкция имени варьируется от культуры до культуры, и даже в англоязычном мире существуют префиксы и суффиксы, которые являются не обязательно частью имени.

основной подход А должен искать honorifics в начале строки (например, "Hon. John Doe") и числа или некоторые другие строки в конце (например, "IV John Doe", "John Doe Jr."), но действительно все, что можно сделать, применяют ряд эвристики и надежды на лучшее.

могло бы быть полезно найти список необработанных имен и протестировать Ваш алгоритм против него. Я не знаю, что существует что-либо предварительно упакованное там, все же.

83
задан Zeynel 29 November 2009 в 21:45
поделиться

3 ответа

Ожидается последовательность (например, список или кортеж) строк. Вы даете ему одну строку. Строка тоже может быть последовательностью строк, но это последовательность строк из 1 символа, а это не то, что вам нужно.

Если вам нужна только одна строка в строке, вы можете сделать что-то вроде этого:

csvwriter.writerow([JD])

This обертывает JD (строку) списком.

122
ответ дан 24 November 2019 в 08:54
поделиться

Класс csv.writer принимает итеративный объект в качестве аргумента для writerow; поскольку строки в Python могут повторяться по символам, они являются приемлемым аргументом для writerow, но вы получаете результат, указанный выше.

Чтобы исправить это, вы можете разделить значение на основе пробелов (я предполагаю, что это то, что вы хотите)

csvwriter.writerow(JD.split())
5
ответ дан 24 November 2019 в 08:54
поделиться

Это происходит потому, что когда метод group () экземпляра MatchObject возвращает только одно значение, он возвращает его как строку. Когда имеется несколько значений, они возвращаются в виде кортежа строк.

Если вы пишете строку, я думаю, csv.writer выполняет итерацию по переданному вами объекту. Если вы передаете одну строку (которая является итерируемой), она выполняет итерацию по своим символам, давая результат, который вы наблюдаете. Если вы передаете кортеж строк, он получает реальную строку, а не ни одного символа на каждой итерации.

1
ответ дан 24 November 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: