【发布时间】:2016-10-24 21:22:37
【问题描述】:
如果对此有一个非常简单的答案,我们深表歉意。找了两天也没找到。
我正在从网站上抓取表格并通过循环构建字符串列表。我的代码运行良好,直到其中一个值中有逗号。
这就是我构建列表的方式(显然省略了循环结构):
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:谢谢!我实施了您对 productList.append 的建议编辑以及对代码编写部分的调整。 (一旦我的胖手指错字被修正)它就像一个冠军!谢谢。
标签: python csv delimiter comma