#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. Ах, я понимаю. Думаю, мне следовало бы сначала напечатать его. Я пропустил некоторые вещи…