在Python中检索JSON密钥

时间:2017-07-25 18:12:24

标签: python json python-3.x dictionary typeerror

我的目标是遍历classes中的 每个 元素,并将classclasses的值添加到新的{ "images": [ { "classifiers": [ { "classes": [ { "class": "street", "score": 0.846 }, { "class": "road", "score": 0.85 } ] } ] } ] } 中列表。

JSON结构:

{'street','road'}

在上面的JSON示例中,新列表应包含:

json_data['images'][0]['classifiers']['classes']

我尝试迭代list.append(),并为每一个class重复list = list() def func(json_data): for item in json_data['images'][0]['classifiers']['classes']: list.append(item['class']) return(list) 的值。

TypeError

我收到的是TypeError: list indices must be integers or slices, not str

TypeError

我从这个list.append()获得的是它尝试将一个字符串添加到列表中,但list.append()不接受字符串作为参数。我需要以某种方式将字符串转换为其他内容。

我的问题是我应该将字符串转换为什么,以便[Welcome, , , , , , , to, , , , Java, , , , , Tutorial] 将其作为参数接受?

1 个答案:

答案 0 :(得分:3)

第一个问题是classifiers也是一个列表,因此您需要一个额外的索引才能获得classes。这将有效:

for item in json_data['images'][0]['classifiers'][0]['classes']:

其次,您希望结果作为集合而不是列表,因此您可以执行:return set(lst)。请注意,集合是无序的,因此不要指望项目的顺序与列表的顺序匹配。