V_ladimir
Сен. 22, 2016 15:25:44
Добрый день!
Задана некая структура) Даже не знаю как ее назвать. Следующего вида
data = [
{
“faceRectangle”: {
“left”: 68,
“top”: 97,
“width”: 64,
“height”: 97
},
“scores”: {
“anger”: 0.00300731952,
“contempt”: 5.14648448E-08,
“disgust”: 9.180124E-06,
“fear”: 0.0001912825,
“happiness”: 0.9875571,
“neutral”: 0.0009861537,
“sadness”: 1.889955E-05,
“surprise”: 0.008229999
}
}
]
в одно множество вложено 2 других.
Как отсюда получить значения переменных?
т.е.
left = 68
top = 97 и так далее
Как вообще обрабатываются вложенные множества?
sander
Сен. 22, 2016 16:02:04
V_ladimir
здесь нет множеств, есть словари
JOHN_16
Сен. 22, 2016 16:10:10
словари поддерживают итерационный протокол т.е. по ним можно проходиться циклом for, при этом значениями будут являться ключи словаря. Для обхода вложенных структур применяют вложенные циклы. Все просто, вы разберетесь
V_ladimir
Сен. 22, 2016 18:07:20
Спасибо!!! Разобрался
V_ladimir
Сен. 22, 2016 19:32:40
Извините) еще вопрос. А как преобразовать бинарную строку b' в словарь?
Shaman
Сен. 22, 2016 21:08:49
Может быть она ещё и в формате json?
JOHN_16
Сен. 22, 2016 23:09:42
V_ladimir
бинарная строка не переводится в словарь это принципиально разные типы данных
py.user.next
Сен. 23, 2016 03:39:59
>>> data = [
... {'faceRectangle': {'left': 68,
... 'top': 97,
... 'width': 64,
... 'height': 97},
... 'scores': {'anger': 0.00300731952,
... 'contempt': 5.14648448E-08,
... 'disgust': 9.180124E-06,
... 'fear': 0.0001912825,
... 'happiness': 0.9875571,
... 'neutral': 0.0009861537,
... 'sadness': 1.889955E-05,
... 'surprise': 0.008229999}}
... ]
>>>
>>> left = data[0]['faceRectangle']['left']
>>> left
68
>>> top = data[0]['faceRectangle']['top']
>>> top
97
>>>
V_ladimir
Сен. 23, 2016 07:50:23
py.user.next
Спасибо! очень интересно
V_ladimir
Сен. 23, 2016 08:13:30
JOHN_16
V_ladimirбинарная строка не переводится в словарь это принципиально разные типы данных
в итоге написал програмульку. может и коряво, но работает)
def binary_to_dictionary(binary):
# binary = b''
b1 = binary.decode('UTF-8') # декодируем
b2 = b1 # удаляем первый символ
b3 = b2 # удаляем последний символ
return eval(b3) # преобразуем в словарь