Как извлечь данные из словаря в списке - PullRequest
0 голосов
/ 18 мая 2018

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

list=[{"length": {"a": 0.05,"b": 0.04}, "id": "66"}]

Как мне извлечь {"a": 0,05, "b": 0,04} и "66" изэтот список?

Ответы [ 3 ]

0 голосов
/ 18 мая 2018
list=[{"length": {"a": 0.05,"b": 0.04}, "id": "66"}]

for ele in list:
    for key, value in ele.items():
       print(value)

Вывод:

{'a': 0.05, 'b': 0.04}
66

Объяснение:

Поскольку вы используете list, сначала выполните итерацию по списку:

for ele in list:

Затем выполните итерациючерез dictionary, используя .items:

for key, value in ele.items():

Затем выведите значения:

print(value)

Это будет ваш требуемый вывод

0 голосов
/ 18 мая 2018

Вы также можете использовать значения извлечения из этого указания

ls=[{"length": {"a": 0.05,"b": 0.04}, "id": "66"}]

ls[0].values()

dvas = [ds.values() for ds in ls]

dvas = [*map(dict.values, ls)]

Вы также должны стараться избегать использования встроенных имен (списка) для присваивания имен переменных, вы можете избежать множества ошибок сэта практика

0 голосов
/ 18 мая 2018

Здесь есть несколько проблем:

1) Вы определяете переменную с именем list, которая будет конфликтовать с ключевым словом list.Это приведет к сбивающим с толку результатам, если вы позже попытаетесь создать list, используя ключевое слово.

2) Вы сохранили один словарь внутри списка.Почему бы просто не создать словарь, например:

dictionary = {"length": {"a": 0.05,"b": 0.04}, "id": "66"}

И тогда вы можете получить нужные данные с помощью следующих команд:

dictionary["length"]  # Gets {"a": 0.05,"b": 0.04}
dictionary["id"]      # Gets "66"

Однако, поскольку у вас в настоящее время есть этовнутри списка ответом на ваш вопрос является получение элемента 0 из списка, а затем применение предыдущих команд.Это будет выглядеть следующим образом:

list[0]["length"]  # Gets {"a": 0.05,"b": 0.04}
list[0]["id"]      # Gets "66"
...