我正在使用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/

10-12 07:07