Как получить данные с сайта Пятерочка

Как из ответа сервиса

r = requests.get('https://5ka.ru/api/stores/?bbox=10.0000,10.0000,100.0000,100.0000')

вытащить "coordinates" и "address".

Пример возвращаемых данных (переносы строк и отступы добавлены для удобства, вообще сервис возвращает все в одну строку):

callback({
    "data": {
        "type": "FeatureCollection",
        "features": [
            {
                "geometry": {
                    "type": "Point",
                    "coordinates": [
                        51.84103119,
                        55.12792649
                    ]
                },
                "properties": {
                    "city_id": 2471,
                    "work_start_time": "09:00:00",
                    "work_end_time": "23:00:00",
                    "is_24h": false,
                    "address": "Волгоградская ул., 32"
                },
                "type": "Feature",
                "id": 9745,
                "options": {
                    "preset": "store.active"
                }
     ...
});

Ответы (1 шт):

Автор решения: CrazyElf

Например:

import requests
import json

r = requests.get('https://5ka.ru/api/stores/?bbox=10.0000,10.0000,100.0000,100.0000')
if r.status_code == 200:
    j = json.loads(r.text[9:-2]) # обрезаем лишнее обрамление у JSON
    for feature in j['data']['features']:
        print('Координаты:', feature['geometry']['coordinates'])
        print('Адрес:', feature['properties']['address'])
else:
    print('Ошибка получения данных, HTTP статус', r.status_code)

Вывод:

Координаты: [51.84103119, 55.12792649]
Адрес: Волгоградская ул., 32
Координаты: [68.99604356, 33.0824978]
Адрес: ул. Александрова, 20
Координаты: [61.3154729, 47.17058947]
Адрес: ул. Пушкина, 4
Координаты: [51.77765944, 55.10483466]
Адрес: ул. Терешковой, 10
...

Но грузит JSON довольно долго. И это очень ad-hoc решение.

P.S. Получить JSON средствами самого request через r.json() в данном случае не удаётся - в ответе не чистый JSON, а HTML с таким содержанием:

callback({"data":{"type":"FeatureCollection","features":[{"geometry":...});
→ Ссылка