Falls es jemand interessiert ist hier das Skript mit dem ich meinen Layer im GIS momentan aufbaue:


import requests
import pandas as pd
import psycopg2


burp0_url = "https://www.lesestunden.de:443/buchschrank/v1/bookcase"
burp0_cookies = {"cookie_notice_accepted": "true", "_pk_id.18.8cc3": "9e679079ea179247.1581152158.1.1581153572.1581152158.", "_pk_ses.18.8cc3": "1"}
burp0_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0", "Accept": "application/json, text/javascript, */*; q=0.01", "Accept-Language": "de,en-US;q=0.7,en;q=0.3", "Accept-Encoding": "gzip, deflate", "X-Requested-With": "XMLHttpRequest", "DNT": "1", "Connection": "close", "Referer": "https://www.lesestunden.de/karte-oeffentlicher-buecherschraenke/"}
data = requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies).text

f = open("lesestunden.json", "w")
f.write(data)
f.close()

df = pd.read_json (r'lesestunden.json')
df=df.set_index('id')

conn = psycopg2.connect("dbname='gis' user='postgres' host='localhost' password='pgadmin'")
cur = conn.cursor()
sql = """
CREATE TABLE IF NOT EXISTS lesestunden (
    gid serial PRIMARY KEY, 
    name text,
    geom geography(POINT,4326) 
);
TRUNCATE lesestunden;
"""
cur.execute(sql)
cur.close()
conn.commit()

cur = conn.cursor()
for waypoint in df.itertuples(index = False):
    wpt = waypoint.title
    lon = waypoint.lng
    lat = waypoint.lat
    sql = """
    INSERT INTO lesestunden (geom, name)
        VALUES (ST_GeomFromText('POINT(%s %s)', 4326), %s);
    """
    cur.execute(sql, (lon, lat, wpt))
cur.close()
conn.commit()