解码json的值

1 投票
3 回答
1020 浏览
提问于 2025-04-16 18:26

我想从一个用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 个回答

0

data 是一个列表,不是字典。你可以试试:

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

你编码的数据是一个只有一个元素的列表。你是不是想说:

decoded[0]['c']
5

你的数据是一个包含字典的列表。

你可以用 decoded[0]['c'] 来获取,因为字典是列表中的第一个元素。

另一种可能是你应该使用 data = {u'a': u'A', u'c': 3, u'b': [2, 4]}(没有方括号)。

这实际上取决于你想要的数据是字典的列表,还是单独的一个字典。

撰写回答