Python - 使用min()在JSON对象中查找min值?

时间:2016-02-23 01:30:47

标签: python json geojson min

所以我有一个geojson对象:

"features" : [{"properties": {"rank": 10}},{"properties": {"rank": 2}}]

等等。我想找到最低排名并使用min方法。所以我试过这样的事情:

features = geojson["features"]
min(features["properties"]["rank"])

然后:

features = geojosn["features"]["properties"]["rank"]
min(features)

并且两者都得到了这个:

  

TypeError:列表索引必须是切片的整数,而不是str

我做错了什么?任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:6)

我假设您有一个带属性的功能列表(因为@idjaw指出您的数据结构无效)。然后geojson['features']是一个列表,您没有索引列表。您可以使用生成器执行此操作:

min(feature["properties"]["rank"] for feature in geojson['features'])

或者,如果您想要恢复整个功能,则可以使用密钥:

min(geojson['features'], key=lambda feature: feature["properties"]["rank"])