如何解决将 CSV 数据转换为 Scala 中的地图列表
我的 CSV 看起来像这样
id | 重量 |
---|---|
1 | 38 |
4 | 98 |
4 | 66 |
6 | 89 |
我想将我的输出生成到这些地图的列表中:
Map("id"->1,"weight"->38)
Map("id->4,weight"->98)
我正在使用 gatling pebble 模板,我尝试从 cCSV 中读取记录,如下所示:
val records=csv(my.csv).readRecords()
然后从这些记录中我无法将其转换为所需的地图。
采用这种格式的地图的卵石模板:
Iterator[Map[String],List[Map[String][String]]]
我在模板中使用了 id
和 weight
。
解决方法
假设您的 CSV 文件如下所示并位于 data.csv
:
id,weight
1,38
4,98
4,66
6,89
最小解析器可能如下所示:
object Main extends App {
val separator = ","
val lines = io.Source.fromFile("data.csv").getLines()
val headers = lines.next().split(separator)
val result = for {
line <- lines
values = line.split(separator)
mapping = headers.zip(values).toMap
} yield mapping
println(result.toList)
}
输出:
List(Map(id -> 1,weight -> 38),Map(id -> 4,weight -> 98),weight -> 66),Map(id -> 6,weight -> 89))
在大多数情况下,使用库可能是一个更好的主意。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。