如何使用Python中的Key访问JSON字符串中的Value?

3
Python 代码:
import json
aaa='''
{
    "eee":"yes",
    "something": null,
    "ok": ["no","mmm","eee"],
    "please":false,
    "no": {"f":true,"h":"ttt"}
}
'''
data=json.loads(aaa)

当我执行:
print(len(data))

我得到了预期的结果:

5

并且

print(len(data['ok']))

这提供了

3

但不知何故

print(data[0])

提供

Traceback (most recent call last):
  File "file.py", line 34, in <module>
    print(data[0])
KeyError: 0

如何使用其索引获取JSON对象中的项?


索引需要一个列表。 - Mark Tolonen
你收到"KeyError"错误的原因是因为在你的字典中没有键值为0的项。 - floss
3个回答

1
你询问了如何访问JSON中的位置,但是数据结构是Python字典(dict),由键和值组成,你只能使用它的键进行索引,就像你用"data['ok']"一样。
要获取第一个键,你可以先获取"dict.items()",这是一个键/值对列表,然后,由于它是一个列表,你可以使用整数进行索引。
data.items()
# [('eee', 'yes'), ('something', None), ('ok', ['no', 'mmm', 'eee']), ('please', False), ('no', {'f': True, 'h': 'ttt'})]


items = list(data.items())
items[0]
# ('eee', 'yes')

虽然最新版本的Python保持字典键插入顺序,但在旧版本中不能保证。Python 3.6的C实现首先将键顺序作为实现细节进行维护,并且在Python 3.7中顺序是标准的。不要期望其他3.6实现和任何3.5及更早版本的实现返回'eee'作为item[0]。 - Mark Tolonen

1
Python字典是无序的。这意味着您无法根据索引值访问字典元素。您需要提供键来访问相应的值或值。

Python 3.7版本的字典维护插入顺序。虽然它们不能被索引,但可以进行迭代。 - Mark Tolonen

0

这是您要找的吗?

您可以通过指定数据的Key值来获取JSON中的术语。在这里,eeeKey

print((data['eee']))

这将打印:

yes

同样地,您可以使用其他Key来获取它们各自的值。

JSON数据格式为Key:Value


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接