带有转义逗号的clojure csv

Fin*_*inn 3 csv parsing clojure

我试图用带有转义的逗号解析clojure中的csv字符串,并且没有引用像这样的字段

"test1\,test2,test3"
Run Code Online (Sandbox Code Playgroud)

我试过这个库:

  • [org.clojure/data.csv"0.1.2"]
  • [cljcsv"1.3.1"]
  • [clojure-csv/clojure-csv"2.0.0-alpha1"]

但他们似乎都没有能够正确认识到这一点,因为["test1,test2" "test3"] 有人知道一个可以做到这一点的图书馆吗?

提前致谢

noa*_*hlz 6

你并没有完全解析CSV数据,而是对约定的一些推导(注意我没有写"标准").

在CSV中,逗号不会转义.这是从C/C++/Java字符串转义泄漏到您的数据中的东西.如果它是典型的CSV,它将被写成这样

"a,b",c
Run Code Online (Sandbox Code Playgroud)

哪个clojure-csv支持.

user=> (csv/parse-csv (str "\"a,b\",c")) 
(["a,b" "c"])
Run Code Online (Sandbox Code Playgroud)

您可能需要编写自己的解析器,或者扩展上述库中的一个来处理这种情况.