Scala 如何获取特定密钥->;列表中映射的值对
有关问题的更多详细信息,请参见此处: 我有一个映射列表,我需要从中获取特定的键值对&然后将其展平,只获取值列表 示例:Scala 如何获取特定密钥->;列表中映射的值对,scala,Scala,有关问题的更多详细信息,请参见此处: 我有一个映射列表,我需要从中获取特定的键值对&然后将其展平,只获取值列表 示例: val res0: Seq[Seq[Map[String, Any]]] = List( List(Map(city -> london, country -> uk, zipcode -> 12345)), List(Map(city -> berlin, country -> germany, zipcode -> 4343), Map
val res0: Seq[Seq[Map[String, Any]]] =
List(
List(Map(city -> london, country -> uk, zipcode -> 12345)),
List(Map(city -> berlin, country -> germany, zipcode -> 4343), Map(city -> frankfurt, country -> germany, zipcode -> 5344))
)
这就是我想要的
List(List(london), list(berlin, frankfurt))
尝试了以下方法,但无法解决
scala> res0.map(x => x.flatten).foreach(println)
List((city,london), (country,uk), (zipcode,12345))
List((city,berlin), (country,germany), (zipcode,4343), (city,frankfurt), (country,germany), (zipcode,5344))
另外,如果我做了以下类似的事情:
res0.map(x => x.map(y => println(y)))
Map(city -> london, country -> uk, zipcode -> 12345)
Map(city -> berlin, country -> germany, zipcode -> 4343)
Map(city -> frankfurt, country -> germany, zipcode -> 5344)
这不是我最初提到的预期输出这应该可以做到:
res0.map(u.flatMap(u.get(“城市”))
请注意,flatMap会隐式地将选项
转换为列表
,如果键城市
不在您的地图
中,则会自动失败
我强烈建议您将映射(我怀疑它来自json)编码为一个
案例类
这应该可以做到:
res0.map(u.flatMap(u.get(“城市”))
请注意,flatMap会隐式地将选项
转换为列表
,如果键城市
不在您的地图
中,则会自动失败
我强烈建议您将映射(我怀疑它来自json)编码为
案例类可能类似这样:data.map(u.flatMap(u.get(key=“city”))
?-顺便说一句,你的数据格式有些可疑。我支持@LuisMiguelMejíaSuárez的回答。也许你应该把它作为一个答案而不是一个评论发布。可能类似这样:data.map(u.flatMap(u.get(key=“city”))
?-顺便说一句,你的数据格式有些可疑。我支持@LuisMiguelMejíaSuárez的回答。也许你应该把它作为回答而不是评论。