如何忽略 CSV 文件中的双引号?
How to ignore double quotes from CSV file?
我正在使用 ColdFusion 在 MySQL 数据库中导入 CSV 文件,我的代码工作正常,但我有一个问题。我想忽略单词周围的双引号。所以我的 csv 看起来像这样: "John","Mark","Peter" 。每次我在数据库中插入 CSV 后,我都会在我的话周围加上双引号。 ColdFusion 中是否有任何命令可用于防止双引号?我尝试使用 trim 但没有用。如果您知道任何可以提供帮助的信息,请告诉我。
好吧,您可以使用命名方便且易于猜测的 replace()
function. However... you might not want to get rid of all of them. Double-quote string delimiters are how CSV deals with data values with embedded commas or new line characters in them (see the CSV RFC) 来替换双引号。如果你知道你不会有任何这些,我认为摆脱没有坏处。
就是说...更好的方法可能是一开始就不要把引号放在那里,而不是拥有它们然后需要摆脱它们。如果可能的话,我会采用这种方法。
您可以使用 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 答案。
遍历字段并按照以下行做一些事情:
<cfset field = reReplace(field, '^"', '')>
<cfset field = reReplace(field, '"$', '')>
<cfset field = replace(field, '\"', '"', 'ALL')>
这将删除字段中周围的引号和非转义引号。
我正在使用 ColdFusion 在 MySQL 数据库中导入 CSV 文件,我的代码工作正常,但我有一个问题。我想忽略单词周围的双引号。所以我的 csv 看起来像这样: "John","Mark","Peter" 。每次我在数据库中插入 CSV 后,我都会在我的话周围加上双引号。 ColdFusion 中是否有任何命令可用于防止双引号?我尝试使用 trim 但没有用。如果您知道任何可以提供帮助的信息,请告诉我。
好吧,您可以使用命名方便且易于猜测的 replace()
function. However... you might not want to get rid of all of them. Double-quote string delimiters are how CSV deals with data values with embedded commas or new line characters in them (see the CSV RFC) 来替换双引号。如果你知道你不会有任何这些,我认为摆脱没有坏处。
就是说...更好的方法可能是一开始就不要把引号放在那里,而不是拥有它们然后需要摆脱它们。如果可能的话,我会采用这种方法。
您可以使用 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 答案。
遍历字段并按照以下行做一些事情:
<cfset field = reReplace(field, '^"', '')>
<cfset field = reReplace(field, '"$', '')>
<cfset field = replace(field, '\"', '"', 'ALL')>
这将删除字段中周围的引号和非转义引号。