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的回答。也许你应该把它作为回答而不是评论。