{"id":172405,"date":"2023-03-17T18:05:25","date_gmt":"2023-03-17T17:05:25","guid":{"rendered":"https:\/\/liora.io\/de\/?p=172405"},"modified":"2026-02-06T06:59:20","modified_gmt":"2026-02-06T05:59:20","slug":"unit-tests-in-der-datenanalyse","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/unit-tests-in-der-datenanalyse","title":{"rendered":"Unit-Tests in der Datenanalyse"},"content":{"rendered":"<br \/>\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]&gt;a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}\n<h3>Unit-Test: Definition<\/h3>\nDer <strong>Unit-Test<\/strong> bezeichnet in der Computerprogrammierung das Verfahren, mit dem sichergestellt wird, dass eine Software oder ein Quellcode (bzw. ein Teil einer Software oder ein Teil eines Codes) einwandfrei funktioniert.\n\nNachdem der <strong>Unit-Tes<\/strong>t lange Zeit als zweitrangige Aufgabe angesehen wurde, ist er heute eine g\u00e4ngige und sogar wesentliche Praxis und ein fester Bestandteil des standardm\u00e4\u00dfigen Entwicklungslebenszyklus.\n\nDer<strong> Unit-Test<\/strong> ist ein wesentlicher Bestandteil jedes Quellcodes, um sicherzustellen, dass die Anwendung trotz m\u00f6glicher Weiterentwicklungen des Quellcodes so funktioniert, wie es in der Spezifikation vorgesehen ist. Au\u00dferdem st\u00fctzen sich gute Softwareentwicklungspraktiken wie<strong> Test Driven Development (TDD)<\/strong> und <a href=\"https:\/\/liora.io\/de\/devops-was-ist-das-definition-vorteile-weiterbildungen\">DevOps<\/a> stark auf Unit-Tests.\n<h3>Die Rolle und die Kriterien des Unit-Tests<\/h3>\n<strong>Unit-Tests<\/strong> werden entwickelt, um die endg\u00fcltige Version mit der Spezifikation zu vergleichen, die normalerweise in den fr\u00fchen Phasen eines IT-Projekts geliefert wird.\n\nSie erm\u00f6glichen es, eine Entscheidung \u00fcber den Erfolg oder Misserfolg einer \u00dcberpr\u00fcfung zu treffen. Ein Test kann also als ein Kriterium verstanden werden, das die Erwartungen an ein Programm oder einen Computercode best\u00e4tigt.\n\nMike Cohn, einer der Hauptverfechter der<a href=\"https:\/\/liora.io\/de\/agile-methoden\"> agilen<\/a><a href=\"https:\/\/liora.io\/de\/scrum-wer-oder-was-ist-das\"> Scrum-Methode<\/a>, stellt <strong>Unit-Tests an die Basis seiner Testpyramide<\/strong> (in der die n\u00e4chsten Ebenen den Service- und Schnittstellentests entsprechen).\n\nDer Unit-Test erm\u00f6glicht unter anderem Folgendes:\n<ul>\n \t<li><strong>Fehler schnell zu identifizieren:<\/strong> Mehrere Methoden (z. B. eXtreme Programming) empfehlen, die Tests gleichzeitig oder sogar vor der zu testenden Funktion zu schreiben, um das Debugging zu erleichtern.<\/li>\n<\/ul>\n<ul>\n \t<li><strong>Die Wartung zu erleichtern:<\/strong> Nach der \u00c4nderung eines Codes k\u00f6nnen die Tests schnell m\u00f6gliche R\u00fcckschritte (fehlgeschlagene Tests) identifizieren.<\/li>\n<\/ul>\n<ul>\n \t<li><strong>Die Dokumentation des Codes zu vervollst\u00e4ndigen<\/strong>: Tests erm\u00f6glichen es oft, die Verwendung einer Funktion besser hervorzuheben. So k\u00f6nnen sie die Dokumentation der Funktionen erg\u00e4nzen.<\/li>\n<\/ul>\nUm einen <strong>Unit-Test<\/strong> richtig zu definieren, m\u00fcssen mehrere Kriterien erf\u00fcllt sein:\n<ul>\n \t<li><strong>Einheit:<\/strong> Der Unit-Test konzentriert sich auf das kleinste identifizierbare Element einer Anwendung (man spricht von einer Einheit). Allerdings k\u00f6nnen mehrere Elemente oder Codezeilen verwendet werden, um eine Einheit zu definieren, die dann eine Funktion, eine Klassenmethode, ein Modul, ein Objekt usw. sein kann.<\/li>\n \t<li>Aus diesem Grund werden <strong>Unit-Tests als Low-Level-Tests<\/strong> bezeichnet (im Gegensatz zu High-Level-Tests, die die G\u00fcltigkeit einer oder mehrerer komplexerer Funktionen \u00fcberpr\u00fcfen).<\/li>\n \t<li><strong>White-Box-Test:<\/strong> Der Test muss als White-Box-Test durchgef\u00fchrt werden, um zu verdeutlichen, dass der Qualit\u00e4tsingenieur, der h\u00e4ufig f\u00fcr den Test verantwortlich ist, oder der Entwickler selbst Kenntnis von dem Teil des Codes (der Einheit) haben muss, der getestet werden soll.<\/li>\n \t<li><strong>Isolation:<\/strong> Die Tests m\u00fcssen isoliert durchgef\u00fchrt werden, da jede getestete Einheit unabh\u00e4ngig von den anderen Tests durchgef\u00fchrt werden muss. Die Folge von Unit-Tests muss in beliebiger Reihenfolge gestartet werden k\u00f6nnen, ohne das Ergebnis des n\u00e4chsten oder vorherigen Tests zu beeinflussen.<\/li>\n \t<li><strong>Schnelligkeit:<\/strong> Die einzelnen Tests m\u00fcssen schnell ausgef\u00fchrt werden k\u00f6nnen, damit sie bei jeder \u00c4nderung des Quellcodes gestartet werden k\u00f6nnen.<\/li>\n \t<li><strong>Idempotenz:<\/strong> Idempotenz bedeutet, dass eine Operation bei jeder Anwendung die gleiche Wirkung hat. Der Test muss also unabh\u00e4ngig von der Umgebung oder der Anzahl der Durchf\u00fchrungen sein.<\/li>\n \t<li><strong>Automatisierung:<\/strong> Der Unit-Test sollte direkt ein Ergebnis in Form von Erfolg oder Misserfolg ausgeben k\u00f6nnen und keinen manuellen Eingriff des <strong>Entwicklers zum Abschluss erfordern.<\/strong><\/li>\n<\/ul>\nZusammenfassend kann man also sagen, dass der wahre Wert des Testens bei wichtigen \u00c4nderungen am <strong>Quellcode einer Anwendung<\/strong> oder eines Systems zum Tragen kommt. Tests stellen dann sicher, dass das erwartete Verhalten beibehalten wird. Der Unit-Test tr\u00e4gt also dazu bei, den Grad der Unsicherheit zu verringern.\n\nTestmethoden und -frameworks sind in der Softwareentwicklung mittlerweile fest verankert, aber wie und wo kommt der <em>Unit-Test in der Datenwissenschaft zum Einsatz?<\/em>\n<h3>Tests im Machine Learning<\/h3>\nIn der traditionellen Softwareentwicklung ist das Schl\u00fcsselelement, das das Systemverhalten beeinflusst, der Quellcode.\n\n<a href=\"https:\/\/liora.io\/de\/deep-learning-vs-machine-learning\">Machine-Learning-Technologien<\/a> haben zwei neue Elemente eingef\u00fchrt, die sich ebenfalls direkt auf das Verhalten des Systems auswirken. Dabei handelt es sich um das verwendete Modell und die Daten. Au\u00dferdem wird das Verhalten von <strong>Machine-Learning-Modellen<\/strong> nicht spezifisch durch Codezeilen definiert, sondern gr\u00f6\u00dftenteils durch die Daten, die in der Trainingsphase verwendet werden.\n\nDies ist der Grund, warum Systeme, die auf <strong>Machine-Learning-Technologien<\/strong> basieren, zus\u00e4tzliche Tests erfordern, da die Regeln, die das Verhalten des Gesamtsystems steuern, weniger explizit sind als die Regeln traditioneller Systeme.\n\n<br \/>\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=&#8220;.svg&#8220;]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/schema_1.png\" alt=\"\" loading=\"lazy\" width=\"800\" height=\"451\"><figcaption><\/figcaption><\/figure>\nDie <strong>Arbeitsschleifen im Bereich <a href=\"https:\/\/liora.io\/de\/machine-learning-data-sets-top-5-websites\">Machine Learning<\/a><\/strong> werden oft \u00fcber diese Umgebungen hinweg durchgef\u00fchrt:\n<ol>\n \t<li><strong>Die Forschungs- und Entwicklungsumgebung: <\/strong>Hierbei handelt es sich meist um das <strong>Jupyter Notebook<\/strong>, das zur Entwicklung der verschiedenen Modelle und Ans\u00e4tze verwendet wird. Obwohl es technisch m\u00f6glich ist, Unit-Tests f\u00fcr grundlegende Funktionen (z. B. einer Klasse in Python) zu erstellen und durchzuf\u00fchren, werden die meisten Unit-Tests in der Regel in den Entwicklungs- und Produktionsumgebungen durchgef\u00fchrt.<\/li>\n \t<li><strong>Die Entwicklungsumgebung : <\/strong>In dieser letzten Umgebung werden die meisten Tests durchgef\u00fchrt. In dieser Umgebung werden normalerweise mehrere Teststufen unterschieden:<\/li>\n<\/ol>\n<ul>\n \t<li>Unit-Tests, die die Grundlage bilden (wie in der folgenden Grafik dargestellt).<\/li>\n \t<li>Integrationstests, um sicherzustellen, dass die verschiedenen Komponenten optimal funktionieren.<\/li>\n \t<li>Systemtests, um sicherzustellen, dass das Gesamtsystem funktioniert.<\/li>\n<\/ul>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/schema_2.png\" alt=\"\" loading=\"lazy\" width=\"283\" height=\"283\">\n\n<figcaption><\/figcaption><\/figure>\nEs stellt sich nun die Frage, wo der<strong> Schieberegler zur Definition der Anzahl der Tests positioniert<\/strong> werden soll.\n\nUm die optimale Anzahl an Tests zu definieren, k\u00f6nnen folgende Fragen herangezogen werden:\n<ul>\n \t<li>Ist die Testbasis geeignet, um die Unsicherheit \u00fcber die Funktionsweise unseres Systems zu verringern?<\/li>\n \t<li>Was sind die kritischen und wichtigsten Aufgaben unseres Systems?<\/li>\n \t<li>Sind die Priorit\u00e4ten klar festgelegt?<\/li>\n<\/ul>\nIm Hinblick auf die Problematik des Maschinenlernens werden im Folgenden Beispiele f\u00fcr Unit-Tests gegeben, die man durchf\u00fchren kann:\n<ul>\n \t<li>Test des Datenformats und -typs<\/li>\n \t<li>Test der Parameter des Machine-Learning-Modells<\/li>\n \t<li>Test der Eingabevariablen<\/li>\n \t<li>Test auf die Qualit\u00e4t der Modelle.<\/li>\n<\/ul>\n<strong>Die Produktionsumgebung:<\/strong>\n\nDies ist die Umgebung, in der die <strong>Nutzer einer Anwendung auf diese zugreifen werden<\/strong>. Die Tests, die in dieser Umgebung durchgef\u00fchrt werden, um sicherzustellen, dass das System insgesamt funktioniert, sind in der Regel viel komplexer.\n<h3>Die Testbibliotheken in Python<\/h3>\nDie beiden wichtigsten <a href=\"https:\/\/liora.io\/de\/top-10-der-python-bibliotheken-fur-data-scientists\">Python-Bibliotheken<\/a> f\u00fcr Unit-Tests in der Programmiersprache Python sind <a href=\"https:\/\/docs.python.org\/3\/library\/unittest.html\">Unittest<\/a> und <a href=\"https:\/\/docs.pytest.org\/en\/7.2.x\/\">Pytest.<\/a>\n\nDie Verwendung der <strong>Unittest-Bibliothek<\/strong> f\u00fcr die Durchf\u00fchrung von Tests erfordert gute Kenntnisse der objektorientierten Programmierung von <a href=\"https:\/\/liora.io\/de\/python-fehler-diese-solltest-du-vermeiden\">Python<\/a>, da die Tests \u00fcber eine Klasse durchgef\u00fchrt werden.\n\nIm Gegensatz dazu bietet die Verwendung der Pytest-Bibliothek etwas mehr Flexibilit\u00e4t beim Design und der Durchf\u00fchrung von Tests. Abgesehen davon, dass die Durchf\u00fchrung von Tests mit der<strong> Pytest-Bibliothek<\/strong> viel flexibler ist, bietet die Pytest-Bibliothek mehr Testbefehle und -optionen (assert instruction).\n\nUm einfache Anwendungsf\u00e4lle dieser beiden Bibliotheken zu veranschaulichen, betrachten wir die folgenden zwei Beispiele:\n<ol>\n \t<li>Test einer Funktion, die das Quadrat einer ganzen Zahl berechnet: Wir testen, ob die Ausgabewerte ganze Zahlen sind (Test mit Pytest).<\/li>\n \t<li>Test des Typs und der Intervalle der Eingabedaten (mit unittest).<\/li>\n<\/ol>\nDiese beiden Beispiele sind bei weitem nicht vollst\u00e4ndig, aber sie zeigen einige der M\u00f6glichkeiten, die diese Bibliotheken bieten.\n<h3>Testbeispiel mit Pytest<\/h3>\nNehmen wir z. B. an, dass Entwickler im Rahmen eines Projekts eine Funktion erstellt haben, die das Quadrat einer ganzen Zahl berechnet, und dass man Tests durchf\u00fchren m\u00f6chte, um sicherzustellen, dass die Ausgaben der Funktion ganze Zahlen sind. Man beschlie\u00dft also, die Tests mit einer Liste von Werten durchzuf\u00fchren.\n\n<strong>Schritt 1:<\/strong> Definiere die Funktion number_squared in der Datei function.py.\n\n<strong>Schritt 2:<\/strong> Festlegen der Testfunktion in der Datei test_in_int.py\n\n<strong>Die Ausf\u00fchrung des Befehls<\/strong> pytest in einem Terminal liefert das folgende Ergebnis:\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/test-unitaire-ecran.png\" alt=\"\" loading=\"lazy\" width=\"512\" height=\"115\">\n\n<figcaption><\/figcaption><\/figure>\nDie einzige Einschr\u00e4nkung bei der Verwendung der <strong>Pytest-Bibliothek<\/strong> ist, dass der Name der Testdatei mit dem Pr\u00e4fix &#8218;test_&#8216; beginnen muss (der vollst\u00e4ndige Name w\u00e4re test_dateiname.py). Auf diese Weise kann bei jeder \u00c4nderung oder Aktualisierung der Funktion die Testfunktion verwendet werden, um sicherzustellen, dass das erwartete Verhalten der Funktion konsistent bleibt.\n<h3>Beispiel f\u00fcr einen Test mit unittest<\/h3>\nIn diesem Beispiel werden wir die <strong>unittest-Bibliothek<\/strong> benutzen, um einen Test mit einem Beispieldatensatz durchzuf\u00fchren. Wir werden den Datensatz<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Iris_de_Fisher\"> iris verwenden (klicke hier f\u00fcr weitere Details)<\/a>. Der Test, den wir implementieren wollen, besteht darin, die Art und den Umfang der Eingabedaten eines Machine-Learning-Modells zu \u00fcberpr\u00fcfen.\n\nNehmen wir zum Beispiel an, dass der <a href=\"https:\/\/liora.io\/de\/data-scientist-werden\">Data Scientist<\/a> eines Teams ein Modell zur Klassifizierung von drei Blumenarten entwickelt hat. Die Daten (genau genommen die Variablen in unserem Datensatz), die zur Entwicklung des Modells verwendet wurden, hatten jedoch einen bestimmten Typ und erstreckten sich \u00fcber einen bestimmten Bereich.\n\nWenn die Informationen, die von den Nutzern unseres Modells geliefert werden, stark von den Trainingsdaten abweichen (Data Drift), k\u00f6nnte das <strong>Machine-Learning-Modell<\/strong> nicht mehr relevant sein und inkonsistente Vorhersagen liefern. Aus diesem Grund ist es w\u00e4hrend der Entwicklungsphase notwendig, einen Test zu definieren, um sicherzustellen, dass die Eingabedaten mit den Trainingsdaten \u00fcbereinstimmen.\n\nMit der folgenden \u00dcbersicht und <strong>Beschreibung des Datensatzes<\/strong> kannst Du sehen, dass die Variablen vom <strong>Typ Float (reelle Zahlen)<\/strong> sind, mit Werten in der Regel zwischen 1 und 8.\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/apercu-du-jeu-de-donnees.png\" alt=\"\" loading=\"lazy\" width=\"512\" height=\"147\">\n\n<figcaption><\/figcaption><\/figure>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/Description-du-jeu-de-donnees.png\" alt=\"\" loading=\"lazy\" width=\"512\" height=\"204\">\n\n<figcaption><\/figcaption><\/figure>\n<h3>Schritt 1: Definieren eines W\u00f6rterbuchs f\u00fcr Variablentypen und -intervalle<\/h3>\nIn einer W\u00f6rterbuchstruktur werden wir f\u00fcr jede Variable sowohl den Typ als auch das Intervall jeder Variable in \u00dcbereinstimmung mit der obigen Beschreibung des Datensatzes definieren (Analogie zum Definitionsbereich in der Mathematik).\n<h3>Schritt 2: Erstellen einer Pipeline zur Datenverarbeitung und zum Trainieren eines logistischen Regressionsmodells<\/h3>\nDieser Schritt kann in mehrere Phasen unterteilt werden, aber wir haben alle Phasen in einer Klasse zusammengefasst.\n<h3>Schritt 3: Festlegen der Testklasse f\u00fcr unsere Testkampagne<\/h3>\nBei der unittest-Bibliothek ist es notwendig, eine Testklasse zu definieren:\n<h3>Schritt 4: Ausf\u00fchren der Tests<\/h3>\nUm den Test in einem Jupyter Notebook auszuf\u00fchren, musst Du nur den folgenden Code verwenden:\n\nDie Ausf\u00fchrung des Codes liefert uns die folgende Anzeige:\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/test-unitaire-final.png\" alt=\"\" loading=\"lazy\" width=\"512\" height=\"82\">\n\n<figcaption><\/figcaption><\/figure>\n<h3>Fazit<\/h3>\n<strong>Die Durchf\u00fchrung von Unit-Tests<\/strong> ist ein unumg\u00e4nglicher Schritt, um die Unsicherheit zu verringern und eine gewisse Koh\u00e4renz zwischen der Eingabespezifikation und dem Endprodukt zu gew\u00e4hrleisten.\n\nEs ist daher verst\u00e4ndlich, dass dieser Schritt in <strong>agilen Methoden<\/strong> eine wichtige Rolle spielt. Bei der Entwicklung von Machine-Learning-Anwendungen werden die Unit-Tests meist in der Entwicklungsphase von einem <a href=\"https:\/\/liora.io\/de\/weiterbildung-data-scientist\">Data Scientist<\/a> oder einem<a href=\"https:\/\/liora.io\/de\/weiterbildung-data-engineer\"> Data Engineer<\/a> durchgef\u00fchrt, um die Leistung des Systems zu gew\u00e4hrleisten und sicherzustellen, dass die Ergebnisse mit den Eingabedaten \u00fcbereinstimmen.\n\nWenn Du Dich f\u00fcr den Beruf des<strong> Data Engineers<\/strong> interessierst, entdecke den von Liora konzipierten Werdegang auf der entsprechenden Seite.\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Unsere Weiterbildungen entdecken<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]&gt;a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px} Unit-Test: Definition Der Unit-Test bezeichnet in der Computerprogrammierung das Verfahren, mit dem sichergestellt wird, dass eine Software oder ein Quellcode (bzw. ein Teil einer Software oder ein Teil eines Codes) einwandfrei funktioniert. Nachdem der Unit-Test lange Zeit als zweitrangige Aufgabe angesehen wurde, ist er heute eine g\u00e4ngige und [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":172406,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-172405","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/172405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=172405"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/172405\/revisions"}],"predecessor-version":[{"id":217670,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/172405\/revisions\/217670"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/172406"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=172405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=172405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}