我正在使用Swiftcsv库来解析CSV文件。
如何忽略DoubleQuotes中字符串的逗号分隔符,例如“Abcd,去了Apple”?
在这里,解析器将 Abcd 作为一个值,并将移至Apple 作为另一个值。
代码:
func parseRows(fromLines lines: [String]) -> [Dictionary<String, String>] {
var rows: [Dictionary<String, String>] = []
for (lineNumber, line) in enumerate(lines) {
if lineNumber == 0 {
continue
}
var row = Dictionary<String, String>()
let values = line.componentsSeparatedByCharactersInSet(self.delimiter)
for (index, header) in enumerate(self.headers) {
let value = values[index]
row[header] = value
}
rows.append(row)
}
return rows
}
如何更改 line.componentsSeparatedByCharactersInSet(self.delimiter)以忽略双引号内的逗号?
最佳答案
改用https://github.com/Daniel1of1/CSwiftV
有同样的问题。我花了一个小时左右的时间才弄清楚问题是SwiftCSV无法正常工作。
CSV文件中的文本在引号内,因此CSV中的逗号和换行符不会破坏解析器。我查看了SwiftCSV源码,但不支持它-意味着任何逗号或换行符都会使解析变得混乱。
您可以修补SwiftCSV,也可以只使用上面链接的 CSwiftV 。
关于ios - Swift Csv Parser支持双引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27655852/