Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将列表导出为.csv[Scala]_Scala_List_Export To Csv - Fatal编程技术网

将列表导出为.csv[Scala]

将列表导出为.csv[Scala],scala,list,export-to-csv,Scala,List,Export To Csv,我对Scala和编程都是新手。 如何使用Scala将列表写入.csv文件 所以我有一个对象列表 List[test] = List(test(Group1,lol,1,2,3),test(Group2,lel,4,5,6)....) 如何将其导出为具有4列的.csv,并且每行具有一个对象的属性 非常感谢您的帮助。我建议您使用现有的库: 使用SBT解析依赖项: 文件: */build.sbt */outputcv.scala build.sbt name := "parse-csv" versi

我对Scala和编程都是新手。 如何使用Scala将列表写入.csv文件

所以我有一个对象列表

List[test] = List(test(Group1,lol,1,2,3),test(Group2,lel,4,5,6)....)
如何将其导出为具有4列的.csv,并且每行具有一个对象的属性


非常感谢您的帮助。

我建议您使用现有的库:
使用SBT解析依赖项:
文件:
*
/build.sbt

*
/outputcv.scala

build.sbt

name := "parse-csv"
version := "1.0.0"
libraryDependencies ++= Seq("com.github.melrief" %% "purecsv" % "0.1.1")
OutputCsv.scala

import purecsv.safe._

object OutputCsv extends App {
    case class Test(group: String, message: String, age: Int)
    val tests = List(Test("Group1", "lol", 1), Test("Group2", "lel", 4))

    println(tests.toCSV()) // just for debug purposes
    tests.writeCSVToFileName("/tmp/example.csv", header=Some(Seq("group", "message", "age")))
}

sbt run
将执行文件

案例类是
产品
的实例,它提供了一种很好的方法,可以像
.productIterator
那样迭代所有字段

其思想是将所有字段转换为字符串,然后转义反斜杠和双引号(如果有),然后将它们全部连接在一起,双引号并用逗号分隔,然后用新行粘合所有字段:

list
 .map { 
    _.productIterator
     .map(_.toString)
     .map(_.replaceAll("\\", "\\\\"))
     .map(_.replaceAll("\"", "\\\""))
     .mkString("\"", "\",\"", "\"")
 }.mkString("\n")

这是很好的反馈!除了
sbt运行
部分,我已经管理了您提到的所有内容。我在这里使用IntelliJ,当运行代码时,我只得到
import purecsv.safe.\u
defined module OutputCsv
,因此我认为它不会运行,因为有太多问题,即使在.csv MIME类型存在RFC的情况下,我强烈建议您使用维护良好的RFC驱动的本机Scala库kantan.csv,该库可以最佳地处理此问题: