【发布时间】:2017-06-13 12:30:55
【问题描述】:
换句话说,我正在寻找一种方法来忽略其中一个字段中的“,”。
该字段应被视为一个字段,即使它包含逗号。
例子:
Round,Winner,place,prize
1,xyz,1,$4,500
如果我使用 dict reader $4,500 阅读此内容,则将其打印为 $4,因为 500 被认为是另一个字段。,这是有道理的,因为我正在阅读以逗号分隔的文件,所以我真的不能抱怨,但想办法解决。
reader = csv.reader(f, delimiter=',', quotechar='"')
我的来源没有用双引号括起来,所以我不能通过包含引号字符串来忽略。
还有其他方法可以处理这种情况吗?可能类似于定义这些美元字段并使其忽略该字段的逗号?或者尝试在该字段周围插入引号?
如果不是 Python,可以使用 shell 脚本或 Perl 吗?
【问题讨论】:
-
您的输入数据已损坏,您只能获得诸如“忽略美元符号后的第一个逗号”之类的创可贴解决方案 - 是否足够?
-
幸运的是
prize列是最后一个,否则这将更加令人头疼(使用标题来跟踪列的数量,m,取列直到美元符号,从右边取列,直到你得到它们中的m-1,然后将中间的剩余内容打到形成prize字段...blech) -
@Benjamin W - 是的,在这一点上,我必须假设我会得到一个损坏的数据,如果不是总是但有时可能会。所以绷带现在是首选。
-
@JackManey ...让我试一试。谢谢
标签: python perl shell csv delimiter