add Intensivregister Deutschland

master
Hofei90 4 years ago
parent 2d4cdbd5ea
commit fbafe714f4

@ -38,8 +38,21 @@ class CoronaStatistik(BaseModel):
wert = FloatField()
class Intensivregister(BaseModel):
ts = DateTimeField()
bundesland = TextField()
covid_aktuell = IntegerField()
covid_aktuell_beatmet = IntegerField()
intensivbetten_belegt = IntegerField()
intensivbetten_frei = IntegerField()
intensivbetten_notfall = IntegerField()
class Meta:
primary_key = CompositeKey('ts', 'bundesland')
def create_tables():
database.create_tables([CoronaDaten, CoronaStatistik])
database.create_tables([CoronaDaten, CoronaStatistik, Intensivregister])

@ -18,6 +18,18 @@ class CoronaDaten:
cases7_per_100k: float
@dataclass_json
@dataclass
class Intensivregister:
ts: datetime.datetime or str
bundesland: str
covid_aktuell: int
covid_aktuell_beatmet: int
intensivbetten_belegt: int
intensivbetten_frei: int
intensivbetten_notfall: int
def sende_daten(url, table, headers, daten):
url = f"{url}{table}"
try:

@ -35,7 +35,14 @@ QUELLEN = {
"%A4ndern/FeatureServer/0/query?f=json&where=1%3D1&returnGeometry=false&spatialRel"
"=esriSpatialRelIntersects&outFields=*&orderByFields=faelle_100000_EW%20desc&resultOffset=0"
"&resultRecordCount=50&cacheHint=true",
"rki_landkreis": "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?f=json&where=1%3D1&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&orderByFields=cases%20desc&resultOffset=0&resultRecordCount=1000&cacheHint=true"
"rki_landkreis": "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten"
"/FeatureServer/0/query?f=json&where=1%3D1&returnGeometry=false&spatialRel"
"=esriSpatialRelIntersects&outFields=*&orderByFields=cases%20desc&resultOffset=0"
"&resultRecordCount=1000&cacheHint=true "
}
INTENSIVREGISTER = {
"intensivregister": "https://www.intensivregister.de/api/public/reporting/laendertabelle"
}
@ -55,6 +62,12 @@ def daten_abrufen(url):
return json_text["features"]
def intensivbetten_daten_abrufen(url):
response = requests.get(url)
json_text = json.loads(response.text)
return json_text["data"]
def jhu_daten_erstellen(quelle, daten):
daten_dict = {}
for data in daten:
@ -116,6 +129,21 @@ def rki_landkreis_daten_erstellen(quelle, daten):
return daten_dict
def intensivbetten_daten_erstellen(daten):
daten_dict = {}
for data in daten:
daten_dict[data['bundesland']] = (db.Intensivregister(
datetime.datetime.strptime(data['creationTimestamp'], "%Y-%m-%dT%H:%M:%SZ"),
data['bundesland'],
data['faelleCovidAktuell'],
data['faelleCovidAktuellBeatmet'],
data['intensivBettenBelegt'],
data['intensivBettenFrei'],
data['intensivBettenNotfall7d']
))
return daten_dict
def daten_erstellen(quelle, daten):
if quelle == "jhu":
daten_db = jhu_daten_erstellen(quelle, daten)
@ -144,12 +172,20 @@ def headers_erstellen():
def main():
headers = headers_erstellen()
# Coronazahlen
for quelle, url in QUELLEN.items():
json_daten = daten_abrufen(url)
daten = daten_erstellen(quelle, json_daten)
daten_server = daten_trennen(daten)
db.sende_daten(CONFIG["url"], CONFIG["tablename_daten"], headers, daten_server)
# Intensivbetten
for quelle, url in INTENSIVREGISTER.items():
json_daten = intensivbetten_daten_abrufen(url)
daten = intensivbetten_daten_erstellen(json_daten)
daten_server = daten_trennen(daten)
db.sende_daten((CONFIG["url"]), "intensivregister", headers, daten_server)
if __name__ == "__main__":
main()

Loading…
Cancel
Save