У меня есть такой список (выходящий из чтения файла json):


list = [{'sheet_name': 'Daily', 'id_column': 'A', 'frequency': 'daily'}]

Я хочу прочитать значение ключа id_column, но когда я использую:


list[0]['id_column']

Это не работает

Он рассматривает каждую букву как индекс в списке, но не как словарь. Вот что я получаю при чтении индексов:


list[0] = [
list[1] = {

Как я могу прочитать значение ключа в словаре в списке.

Благодарность

-2
zsh_18 24 Ноя 2021 в 07:55
2
Не рекомендуется вообще переопределять встроенные команды. Например, при таком подходе вы не сможете назначить переменную как пустой list() позже в коде.
 – 
rv.kvetch
24 Ноя 2021 в 07:58
2
Похоже, ваш список - это строка, а не реальный список. Убедитесь, что список на самом деле не определен как: '[{' sheet_name ':' Daily ',' id_column ':' A ',' frequency ':' daily '}]'
 – 
QuantumMecha
24 Ноя 2021 в 07:58
Похоже, что ваши данные list на самом деле являются строкой json. Я думаю, это сработает, если вы сначала json.loads свои данные.
 – 
rv.kvetch
24 Ноя 2021 в 08:00

1 ответ

Лучший ответ

Поскольку данные, которые вы получили, имеют форму String или JsonArray of String

Вы можете использовать модуль python json.loads() для преобразования в фактический список или словарь Python.

import json

data = json.loads(list)  
print(data[0]['id_column'])

Пожалуйста, обратитесь для получения более подробной информации, https://pythonexamples.org/python-json-to-list/

Примечание : я заметил, что вы определили имя списка как «список». Настоятельно рекомендуется избегать именования переменных или функций, которые соответствуют встроенным функциям python.

0
Yaseen 24 Ноя 2021 в 09:54