【发布时间】:2019-02-10 09:30:57
【问题描述】:
所以我一直在玩 JSON 并试图打印出来但没有任何运气。基本上 JSONI 试图打印的是 cityplace,您将在此处看到:
{
'id': '5235246c-ac21a7-151128-8cd9-512512',
'type': 'Hello world',
'metadata': {
'invite_text': "A very cool text here!!",
'cityplace': [
{
'display_text': 'Stackoverflow City',
}
]
}
}
我为代码所做的是,我创建了一个循环,通过调用名称 test_print 打印出来,这给了我打印出来的 JSON 对象。
我所做的尝试是
print(test_print['metadata']['cityplace']['display_text'])
不幸的是,这给了我错误
TypeError: list indices must be integers or slices, not str
所以我需要做的是:
print(test_print['metadata']['cityplace'][0]['display_text'])
现在我的问题是:是否可以在不需要添加[0] 的情况下打印出来,因为将来它可能并不总是0?
【问题讨论】:
-
print(test_print['metadata']['cityplace'][0]['display_text'])? -
我不太明白你在问什么。这是一个列表,如果你想打印出你需要使用
[0]的第一个项目,如果你想打印每个项目,你可以循环遍历 -
@Rakesh 是的,我确实打印出来说它有效,但我的问题是,是否可以在不添加 [0] 的情况下实现它?
-
@DanielRoseman 在这种情况下我怎样才能让它循环?我不知道如何查看列表的长度?还是..?
-
为什么要检查它有多长?只需
for item in test_print['metadata']['cityplace']: print(item['display_text'])。