Как преобразовать словарь [String: Any] в [String: Float] в Swift - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть словарь, подобный:

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 из моего вопроса: {"Time Series FX(5 минут) ": {" 2019-04-23 23:40:00 ": {" 1. открыт ":" 1.1223 "," 2. высокий ":" 1.1223 "," 3. низкий ":" 1.1222 ","4. close": "1.1223"}}}

1 Ответ

0 голосов
/ 24 апреля 2019

Я думаю, что если вы используете приведение следующим образом:

let result: [String : [String: Double]]? = dict as? [String : [String: Double]]

, но если вы не можете определить тип значения dict, но вам нужно найти значение, которое подходит, вы можете использовать эту функцию:

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

как это:

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]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...