значение декодированного JSON

1

Я пытаюсь получить элемент из dict, который был декодирован json:

data = [ { 'a':'A', 'b':(2, 4), 'c':3 } ]
data_string = json.dumps(data)
decoded = json.loads(data_string)
decoded['c']

Итак, это показывает следующее:

Traceback (most recent call last):
  File "", line 1, in 
TypeError: list indices must be integers, not str

Я пытаюсь распечатать значение c на экране
Поэтому я пытаюсь увидеть 3 после декодирования ['c']
Как я могу это сделать?

Спасибо!

Теги:

3 ответа

5
Лучший ответ

ваши данные - это список, содержащий словарь

вы можете использовать decoded[0]['c'], поскольку словарь является первым элементом списка

Другая возможность заключается в том, что вы должны использовать data = {u'a': u'A', u'c': 3, u'b': [2, 4]} (без квадратных скобок)

Это действительно зависит от того, хотите ли вы, чтобы данные были списком словарей или просто словарем

1

данные, которые вы закодировали, представляют собой список из одного элемента. Возможно, вы имеете в виду:

decoded[0]['c']
0

data - это список, а не dict. Попробуйте:

data = { 'a':'A', 'b':(2, 4), 'c':3 }
data_string = json.dumps(data)
decoded = json.loads(data_string)
decoded['c']

Ещё вопросы

Сообщество Overcoder
Наверх
Меню