Не удается получить значение словаря из ключа в словаре Юникода

#python #dictionary #unicode

#python #словарь #юникод

Вопрос:

Следующий код сохраняет словарь Юникода в переменной webproperties_list :

 webproperties_list = service.management().webproperties().list(
        accountId='~all').execute()
profile_id = webproperties_list.get(u'defaultProfileId')
print profile_id
 

По какой-то причине ключ .get() on of u'defaultProfileId' выдает мне None , хотя я знаю, что это в ответе. Я также попробовал get без u , и я все еще получаю None ответ:

 profile_id = webproperties_list.get('defaultProfileId')
 

Нужно ли мне что-то делать с dict, прежде чем я получу значение из ключа, или я делаю что-то еще совершенно неправильно?

Обновить:

Вот ответ, который я получаю:

 {u'username': u'removed', u'kind': u'analytics#webproperties', u'items': [{u'profileCount': 1, u'kind': u'analytics#webproperty', u'name': u'removed', u'level': u'STANDARD', u'defaultProfileId': u'removed'.....
 

Мне нужно получить значение u'defaultProfileId'

Не совсем уверен, как получить значение из ключа, который находится в dict в списке внутри dict…

Комментарии:

1. Вы пытались напечатать ключи, тип каждого ключа и кодировку каждого ключа?

2. что print(webproperties_list) показывает?

3. @wwii <type 'unicode'> <type 'unicode'> <type 'unicode'> <type 'unicode'> <type 'unicode'> <type 'unicode'> для for x in webproperties_list.keys(): print type(x)

4. @MrAlias хм, так что я просто понимаю, что нужные мне данные находятся в dict, который находится в списке, который находится во всем ответе dict

5. Соответствует ли кодировка каждого ключа кодировке вашего ключа , например, являются ли они оба «utf-8» или «latin-q» n.a.

Ответ №1:

Чтобы выяснить, как получить к нему доступ, иногда помогает идти шаг за шагом:

 >>> d
{u'username': u'removed', u'items': [{u'profileCount': 1, u'defaultProfileId': u'removed', u'kind': u'analytics#webproperty', u'name': u'removed', u'level': u'STANDARD'}], u'kind': u'analytics#webproperties'}
>>> d['items']
[{u'profileCount': 1, u'defaultProfileId': u'removed', u'kind': u'analytics#webproperty', u'name': u'removed', u'level': u'STANDARD'}]
>>> d['items'][0]
{u'profileCount': 1, u'defaultProfileId': u'removed', u'kind': u'analytics#webproperty', u'name': u'removed', u'level': u'STANDARD'}
>>> d['items'][0]['defaultProfileId']
u'removed'
 

Комментарии:

1. Ах, я понимаю. Думаю, мне следовало бы сначала напечатать его. Я пропустил некоторые вещи…