我有一个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
答案 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的注释,使用它。