Python - 获取JSON中的所有字段值

时间:2017-03-05 09:34:24

标签: python json

我有一个geoJSON文件,我想在子字段中提取所有可能的值。所以对于两件长json来说,就像这样:

data['features'][0]['properties']['cellId']
#returns 38
data['features'][1]['properties']['cellId']
#returns 51

我想返回[38, 51]。可能吗?我试过了

data['features'][0:]['properties']['cellId']

但它不起作用,因为TypeError: list indices must be integers or slices, not str

3 个答案:

答案 0 :(得分:6)

使用for循环:

for element in data['features']:
    print(element['properties']['cellId'])

如果你想存储这些,而不是单独打印它们,请使用列表理解:

cell_ids = [element['properties']['cellId'] for element in data['features']]
print(cell_ids)
# [38, 51]

答案 1 :(得分:0)

您可以使用list comprehension收集所需的数据。在你的例子中:

[data['features'][i]['properties']['cellId'] for i in range(len(data))]

已更新:抱歉,更好/ pythonic代码在@DeepSpace给出的答案中,只是迭代data['features'],而不是range(len(data))

答案 2 :(得分:0)

[i['properties']['cellId'] for i in data['features']]

使用@DeepSpace的注释,使用它。