第0列中的所有CSV值都是字符串

时间:2015-12-22 16:58:09

标签: python-2.7 csv

由于某种原因,我用Python写的(win7)csv文件将所有值都作为第0列中的字符串,并且不能执行任何操作。

它没有标签。

格式是(我想保留最后一个值 - 日期 - 作为日期格式):

"Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0,"" date: Feb 04, 2016            """

编辑 - 当我用csv模块读取它时,它打印出来像:

['Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0," date: Feb 04, 2016\t\t\t"']

将字符串转换为逗号分隔值的最佳方法是什么?

Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0, date:, Feb 04, 2016

非常感谢。

2 个答案:

答案 0 :(得分:0)

s="Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0,"" date: Feb 04, 2016      """

print(s)
Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0, date: Feb 04, 2016

在“date:”之后添加一个逗号,你需要添加一些逻辑(比如用“:”替换“:”;或者在第一个单词之后等等。

答案 1 :(得分:0)

首先,引用你的日期字段,这是好的(并且需要),因为里面有一个逗号:

" date: Feb 04, 2016            "

但是整条线也被引用(因此被视为单个字段)。而且由于日期字段周围已有引号,因此会使用另一个引号进行转义:

"Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0,"" date: Feb 04, 2016          """

所以,如果删除最后一个引用,一切都应该没问题(但你可能想修剪日期字段):

Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0," date: Feb 04, 2016            "

如果你想要这样,那么在date:后需要另一个逗号:

Rob,Avanti,Ave,12.83,Max,4.0,Min,-21.9,analist disp:,-1.0, date:,"Feb 04, 2016"

另一方面,最好使用标题:

Name,Name2,Ave,Max,Min,analist disp,date
Rob,Avanti,12.83,4.0,-21.9,-1.0,"Feb 04, 2016"