Извлечение определенной позиции во вложенном словаре - PullRequest
0 голосов
/ 16 января 2020

это фиктивная версия того, что возвращает функция. Я хотел бы знать, как извлечь

'the.email@addresi.want' и 'Nextstringiwant из:

{'blah': {'blah1': 'the.email@addresi.want', 'blah2': 'Nextstringiwant'}, 'blah3': {'-note-': 'blah4', 'blah5': 'blah6', 'blah7': 'blah@bleble.blah', 'blah8': 'blah9'}}

Честно говоря, я не очень хорошо понимаю назначение скобок {} или как работать с этим. Я не могу изменить функцию, которая возвращает это. Пожалуйста, помогите мне, я потерялся. Моя интуиция говорит мне, что я должен преобразовать это в обычный список и просто получить нужную позицию в этом списке, но он возвращает эту ошибку.

Мой код:

brackets = function().split(sep=':')
brackets.to_list()
email=brackets[2]
string=brackets[3]

Ошибка:

brackets = creds.split(sep=':')
AttributeError: 'dict' object has no attribute 'split'

Примечание: Это именно то, как функция возвращает {} list, я изменил значения только для простоты.

Я был бы очень признателен

Ответы [ 3 ]

2 голосов
/ 16 января 2020

Как указывает сообщение об ошибке, split является атрибутом / методом для строки , а не для словаря.

Ваша функция возвращает Python словарь .

Учитывая, что ваша функция называется function, вы можете получить доступ к следующим значениям:

result = function()

email_address = result["blah"]["blah1"]  # this will be 'the.email@addresi.want'

next_string = result["blah"]["blah2"]  # this will be 'Nextstringiwant'

Более подробную информацию о Python словарях вы можете получить на этом сайте: https://realpython.com/python-dicts/

1 голос
/ 16 января 2020
mydict = {
    'blah': {'blah1': 'the.email@addresi.want', 
             'blah2': 'Nextstringiwant'}, 
    'blah3': {'-note-': 'blah4', 
              'blah5': 'blah6', 
              'blah7': 
              'blah@bleble.blah', 
              'blah8': 'blah9'}
}

[k_ for k_ in mydict.get("blah", dict()).values()]

Выход:

['the.email@addresi.want', 'Nextstringiwant']
0 голосов
/ 16 января 2020

{} означает json объект в Python. если эта функция возвращает строку, вы должны использовать модуль Json из python, чтобы преобразовать его в json объект и получить доступ к его свойствам. Например:

import json
obj = json.loads(str_above)
print (obj.blah.blah1)
print (obj.blah.blah2)
...