如何忽略CSV文件中的双引号?

时间:2015-08-28 12:53:28

标签: csv coldfusion

我正在使用ColdFusion在MySQL数据库中导入CSV文件,我的代码工作正常,但我有一个问题。我想忽略这些词的双引号。所以我的csv看起来像这样:“John”,“Mark”,“Peter”。每次我在数据库中插入CSV后,我都会在我的文字中加上双引号。 ColdFusion中是否有任何命令可用于防止双引号?我试图使用修剪,但这不起作用。如果您知道任何有用的信息,请告诉我。

3 个答案:

答案 0 :(得分:2)

您可以使用cfhttp将CSV文件读入cfquery对象。例如:

my.csv文件内容:

"forename","surname","id"
"fred","blogs",1000
"jim","smith",2000

然后您可以这样阅读:

<cfhttp url="http://scratch.localhost/my.csv" method="get" name="mydata">
<cfdump var="#mydata#">

mydata将是一个cfquery对象,因此您可以简单地循环它。双引号将被删除,它将如下所示:

    FORENAME  ID    SURNAME
1   fred      1000  blogs
2   jim       2000  smith

如果您这样做,那么您需要通过http提供CSV。在当地的开发环境中,这很好,但不要在生产中这样做。所以我只建议一次性进口(在受限制的环境中),或者无论如何都可以公开访问数据。

否则请使用Adam Cameron's回答。

答案 1 :(得分:1)

循环遍历字段并按以下方式执行操作:

<cfset field = reReplace(field, '^"', '')>
<cfset field = reReplace(field, '"$', '')>
<cfset field = replace(field, '\"', '"', 'ALL')>

这将删除字段中的周围引号和unescape引号。

答案 2 :(得分:-1)

你可以用方便命名的&amp;替换双引号。迫在眉睫的replace()功能。但是......你可能不想摆脱所有这些。双引号字符串分隔符是CSV处理包含逗号或新行字符的数据值的方式(请参阅CSV RFC)。如果你知道你没有获得任何这些,我认为摆脱没有害处。

那说......一个更好的方法可能是不首先把引号放在那里,而不是让它们需要摆脱它们。这是我&#39; 采取的方法,如果可能的话。