2016-07-06 2 views
-3

У меня есть следующий набор данных в Python:Python манипуляция словаря данных

данных = [{ 'ID': '431876400186007/идеи/page_fans_country/время жизни', 'имя': 'page_fans_country', 'описание' : «Пожизненное время: данные о местоположении в агрегированном виде, отсортированные по странам, о людях, которым нравится ваша страница. (Уникальные пользователи) ',' title ':' Lifetime Likes by Country ',' period ':' lifetime ',' values ​​': [{' end_time ':' 2016-07-02T07: 00: 00 + 0000 ',' значение ': {' PK ': 100,' AT ': 151,' SK ': 81,' RO ': 488,' BE ': 367,' ID ': 91,' MX ': 82,' GB ': 2063, 'CY': 1820, 'TN': 92, 'NL': 418, 'ES': 230, 'RU': 99, 'CZ': 188, 'AR': 105, 'BD': 80, 'PH': 144, 'AU': 550, 'GE': 178, 'GR': 273321, 'CO': 98, 'DZ': 86, 'US': 2447, 'BG': 732, 'MA ': 95,' MK ': 831,' PT ': 160,' CH ': 187,' CA ': 317,' DE ': 4463,' AL ': 1588,' FR ': 388,' PE ': 204, 'AE': 142, 'TR': 547, 'BR': 609, 'SE': 495, 'HU': 120, 'IT': 845, 'PL': 186, 'IN': 114, 'EG': 217, 'NO': 97, 'DK': 77, 'RS': 444}}, {'end_time': '2016-07-03T07: 00: 00 + 0000', 'value': { 'PK': 100, 'AT': 151, 'SK': 81, 'RO': 488, 'BE': 367, 'ID': 91, 'MX': 82, 'GB': 2063, 'CY ': 1820,' TN ': 92,' NL ': 418,' ES ': 230,' RU ': 99,' CZ ': 188,' AR ': 105,' BD ': 80,' PH ': 144, 'AU': 548, 'GE': 178, 'GR': 273275, 'CO': 98, 'DZ': 86, 'US': 2447, 'BG': 732, 'MA': 95, 'MK': 831, 'PT': 159, 'CH': 187, 'CA': 317, 'DE': 4462, 'AL': 1588, 'FR': 388, 'PE': 204, 'AE': 142, 'TR': 547, 'BR': 607, 'SE': 495, 'HU ': 120,' IT ': 845,' PL ': 186,' IN ': 114,' EG ': 217,' NO ': 97,' DK ': 77,' RS ': 445}}, {' end_time ':' 2016-07-04T07: 00: 00 + 0000 ',' value ': {' PK ': 100,' AT ': 151,' SK ': 81,' RO ': 488,' BE ': 367, 'ID': 90, 'MX': 82, 'GB': 2063, 'CY': 1820, 'TN': 92, 'NL': 418, 'ES': 230, 'RU': 99, 'CZ': 188, 'AR': 105, 'BD': 80, 'PH': 144, 'AU': 547, 'GE': 178, 'GR': 273249, 'CO': 98, 'DZ ': 86,' US ': 2445,' BG ': 732,' MA ': 95,' MK ': 831,' PT ': 159,' CH ': 187,' CA ': 317,' DE ': 4460, 'AL': 1588, 'FR': 388, 'PE': 204, 'AE': 142, 'TR': 547, 'BR': 608, 'SE': 495, 'HU': 120, «IT»: 845, «PL»: 186, «IN»: 114, «EG»: 217, «NO»: 97, «DK»: 77, «RS»: 444}}]}]

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

{'PK': 100, 
'AT': 151, 
'SK': 81, 
'RO': 488, 
'BE': 367, 
'ID': 91, 
'MX': 82, 
'GB': 2063, 
'CY': 1820, 
'TN': 92, 
'NL': 418, 
'ES': 230, 
'RU': 99, 
'CZ': 188, 
'AR': 105, 
'BD': 80, 
'PH': 144, 
'AU': 550, 
'GE': 178, 
'GR': 273321, 
'CO': 98} 

Что мне делать?

Я не могу использовать следующий код:

data['value'] 

как я мог бы в обычном словаре.

+0

Пожалуйста, отредактируйте ваш вопрос и покажите нам, что вы уже пробовали, добавьте свой код. Как бы то ни было, этот вопрос больше походит на запрос кода. – CentAu

ответ

1

print data[0]['values'][0]['value'] похоже на работу. Он печатает это:

{'BD': 80, 'BE': 367, 'FR': 388, 'BG': 732, 'BR': 609, 'RU': 99, 'NL': 418, 'NO': 97, 'RO': 488, 'CH': 187, 'CO': 98, 'GR': 273321, 'CA': 317, 'CZ': 188, 'CY': 1820, 'GB': 2063, 'SK': 81, 'SE': 495, 'DK': 77, 'DE': 4463, 'HU': 120, 'DZ': 86, 'MK': 831, 'PT': 160, 'TR': 547, 'TN': 92, 'PE': 204, 'PK': 100, 'PH': 144, 'PL': 186, 'AE': 142, 'EG': 217, 'AL': 1588, 'IT': 845, 'AR': 105, 'AU': 550, 'AT': 151, 'IN': 114, 'ID': 91, 'ES': 230, 'MA': 95, 'RS': 444, 'GE': 178, 'US': 2447, 'MX': 82} 

В вашем data массиве, это первый пункт, и в этом пункте является ключевым values чей первый элемент имеет ключевое value.

2

Если я не ошибаюсь, это выглядит так: массив values - это совокупный снимок, а не значение периода. Это означает, что вы должны быть в состоянии просто потянуть последнее значение и использовать это:

countryData = data[0]['values'][-1]['value'] 

[0] тянет первый (и единственный) элемент внешнего списка.

['values'] извлекает список снимков из словаря.

[-1] получает последний снимок.

['value'] получает данные страны из этого моментального снимка.

Смежные вопросы