Dmustache
@Dmustache
Python, Cpp, SQL

Как получить поле из JSON?

Я хочу получить координаты с помощь. этого api
http://search.maps.sputnik.ru/search/addr?format=j...
Я использую этот код чтобы получить данные из поля "coordinates":
import requests
r = requests.get("http://search.maps.sputnik.ru/search/addr?format=json&lat&q=Песочная+аллея,+дом+1")
data = r.json()
geo = data.get('coordinates')
print(geo)


Но у меня ничего не получается
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Потому что там путь посложнее:
import requests
r = requests.get("http://search.maps.sputnik.ru/search/addr?format=json&lat&q=Песочная+аллея,+дом+1")
print(r.json()['result']['address'][0]['features'][0]['geometry']['geometries'][0]['coordinates'])
# [37.674698, 55.79341]


Как вариант - можно пробежаться рекурсией и вытянуть все ключи с 'coodinates':
coordinates = []

def search_key(data, key):
    if isinstance(data, list):
        for x in data:
            search_key(x, key)
    if isinstance(data, dict):
        for x in data.keys():
            if x == key:
                coordinates.append(data[x])
            else:
                search_key(data[x], key)

search_key(r.json(), 'coordinates')
print(coordinates)
# [[37.674698, 55.79341]]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@semenovs
QA mobile, bh
import requests

url = "http://search.maps.sputnik.ru/search/addr"
params = {'format': 'json', 'q': 'Песочная аллея, дом 1'}
rq = requests.get(url=url, params=params)
location = rq.json()['result']['viewport'].values()
print(list(location)[0:2])

61185ce8d0ea7765523774.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы