如何在Swift中将字典[String:Any]转换为[String:Float]

如何在Swift中将字典[String:Any]转换为[String:Float],swift,Swift,我有一本字典,像: let dict: [String : Any] = ["2019-04-23 22:00:00": ["2. high": 0.9535, "1. open": 0.9532, "4. close": 0.9529, "3. low": 0.9517]] 如何将值转换为[String:Double] 以下是我的问题中的JSON部分:{“时间序列FX(5分钟)”:{“2019-04-23 23:40:00:{“1.打开”:“1.1223”,“2.高”:“1.1223”,“3

我有一本字典,像:

let dict: [String : Any] = ["2019-04-23 22:00:00": ["2. high": 0.9535, "1. open": 0.9532, "4. close": 0.9529, "3. low": 0.9517]]
如何将值转换为
[String:Double]


以下是我的问题中的JSON部分:{“时间序列FX(5分钟)”:{“2019-04-23 23:40:00:{“1.打开”:“1.1223”,“2.高”:“1.1223”,“3.低”:“1.1222”,“4.关闭”:“1.1223”}}

我想如果你像这样使用cast:

let result: [String : [String: Double]]? = dict as? [String : [String: Double]]
但如果无法确定dict的值类型,但需要找到符合条件的值,则可以使用此函数:

@inlinable public func compactMap<ElementOfResult>(_ transform: (Value) throws -> ElementOfResult?) rethrows -> [ElementOfResult]

因此,我需要获取类似Float format的值这是一个嵌套字典,不能转换为
[String:Float]
您有
[String:[String:Double]]
。显示您想要的实际结果(在您的问题中,而不是在注释中)。显示来自API的原始json响应。@Igor不要在注释中发布链接。在你的问题中加入相关细节,人们会在哪里找到它们。包括样本输入和所需输出。
let map = dict.values.compactMap { (value) -> [String : Double]? in
    guard let valueMap = value as? [String: Any] else { return nil }
    let filterResult = valueMap.filter { $0.value is Double }
    return filterResult as? [String : Double]
}