Извините, если на самом деле есть простой ответ на этот вопрос. После двух дней поиска я его не нашел.Напишите список строк в списке, который может содержать или не содержать запятые для csv в Python
Я соскабливаю таблицу с сайта и строю список строк путем циклирования. Мой код отлично работает до тех пор, пока в одном из значений не будет запятой.
Это, как я строю список (зацикливание структура опущено, ясно):
record = (name, availability, upc, price)
productList.append(",".join(item or "" for item in record))
Это приводит к:
[u'Product One, In Stock, 999999999999, $99.99', u'Product Two, In Stock, ....]
Что я тогда пишу в CSV с:
import unicodecsv as csv
...
f = open('data.csv', 'wb')
w = csv.writer(f, delimiter = ",")
w.writerow([x.split(',') for x in productList])
f.close()
Которая работает отлично вплоть до запятой в одном из названий продуктов. Неудивительно, что в этот момент название продукта прерывается несколькими столбцами.
Я ценю любую помощь, которую вы можете оказать. Спасибо.
@UrielEli: Это просто означает, что если тильда появляется в поле, как правило, он преобразуется в запятую при чтении. Решение состоит в том, чтобы позволить модулю 'csv' выполнять свою работу, чтобы он обрабатывал цитирование для вас. – ShadowRanger
@ShadowRanger: Спасибо! Я внедрил ваше предлагаемое редактирование в productList.append, а также настройку в раздел записи кода. (Как только мои тучные опечатки были исправлены) Это работало как чемпион! Спасибо. – NickV