存储csv文件时的奇怪行为

时间:2011-10-13 07:29:31

标签: csv double-quotes

将结果存储在csv文件中时,我遇到了这个奇怪的问题。

summary = site.select('.//*[contains(@class, "summary")]/p/text()').extract()
description = ""
                    while (len(summary) != 0):

                        description = description + summary.pop(0).encode('utf-8')
                    description = str(description)

                    item['Description'] = description

所以我关注Description列。我以csv格式提取这些结果。如果我在excel中打开它,结果显示正常。但是当我用wordpad打开它时,我可以看到,对于少数描述数据,str在字符串的开头和结尾都有双引号,而在某些情况下,没有双引号。

知道为什么会出现这种奇怪的行为

1 个答案:

答案 0 :(得分:2)

这不是奇怪的行为,这是非常期待的。 Wordpad是一个文字处理器,不会试图解释你的.CSV文件比.TXT文件更多。文件中的每一行都被视为一行文本。但是,Excel会将逗号(或分号,取决于区域设置)解释为字段分隔符。它还将“双引号”解释为防止包含分隔符的字段被切断的机制。例如:

文件:

Tom, Dick, and Harry,en
Zhang san, Li si,zh
"Tom, Dick, and Harry",en
"Zhang san, Li si",zh

由Excel加载:

A                      B      C           D
Tom                    Dick   and Harry   en
Zhang san              Li si  zh
Tom, Dick, and Harry   en
Zhang san, Li si       zh