确定json是否为Geojson

时间:2019-06-17 02:56:34

标签: python json geojson

我在json文件中有几个字段,我需要确定哪个json字段是GeoJSON。例如,这是我拥有的数据的示例:

{
    "name": "bob",
    "age": 20,
    "info": {"height": 189, "weight": 101}
    "location": { "type": "Feature","geometry": {"type": "Point","coordinates": [125.6, 10.1]},"properties": {"name": "Dinagat Islands"}}
}

我想从中获取以下列信息:

  • 名称(字符串)
  • 年龄(int)
  • 信息(json)
  • 位置(geojson)

确定json对象是否实际上是GeoJSON对象的最佳方法是什么?我查看了GeoJSON的各种示例,例如http://geojsonlint.com/,并且在如何指定方面似乎很灵活。

是否可以肯定地知道JSON对象是否为GeoJSON?

1 个答案:

答案 0 :(得分:0)

您可以使用pandas将json / geojson对象转换为数据框。链接here
使用以下方法获取位置点:

安装geopy

pip install geopy

要获取位置:

location = df['location']['geometry']['coordinates']

然后

try:
   from geopy.geocoders import Nominatim
   geolocator = Nominatim(user_agent="specify_your_app_name_here")
   location = geolocator.reverse(str(location))
   print(location.address)
except:
   print('not GEOjson') #there will be exception if the coordinates don't represent a location

这是基于coordinatespair并会给出位置地址的事实。

其他:

您只需检查它们是否具有coordinatesgeometry之类的功能,然后检查其geojson

由于整个对象都在一个数据框中,因此可以更轻松地可视化和使用任意值!

您也可以通过相同的方式获取namelocation或其他任何内容。