Определите, является ли JSON Geojson - PullRequest
0 голосов
/ 17 июня 2019

У меня есть несколько полей в файле 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)
  • местоположение (геойсон)

Как лучше всего определить, действительно ли объект json является объектом GeoJSON? Я просмотрел различные примеры GeoJSON, такие как http://geojsonlint.com/, и кажется, что он достаточно гибок в том, как его можно указать.

Есть ли надежный способ узнать, является ли объект json GeoJSON или нет?

1 Ответ

0 голосов
/ 17 июня 2019

Вы можете использовать pandas для преобразования объекта json / geojson в кадр данных.Ссылка здесь .
Получить точки местоположения, используя:

Установка Геопсия .

pip install geopy

Чтобы получитьlocation:

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

Это основано на том факте, что coordinates является pair и даст адрес местоположения.

Иначе:

Вы можете просто проверить, имеют ли они некоторые функции, такие как coordinates или geometry, тогда его geojson.

КакВсе это находится в кадре данных, тогда проще визуализировать и использовать любое значение по вашему желанию !!

Вы также можете получить name, location или что-нибудь еще тем же способом.

...