PPointerMallow
KI-Arbeitsumgebung für Code

Navigation mit JSON Pointer

Löse einen JSON Pointer in Wörterbüchern und Listen auf, ohne sie zu ändern.

● ● ●PointerMallow●
Arbeitsabläufe · Navigation mit JSON Pointer ×
import re
def pointer_get(root, pointer):
    if not isinstance(pointer, str): raise ValueError("pointer text")
    if pointer == "": return root
    if not pointer.startswith("/"): raise ValueError("root slash")
    value = root
    for raw in pointer[1:].split("/"):
        if re.search(r"~(?![01])", raw): raise ValueError("escape")
        key = raw.replace("~1", "/").replace("~0", "~")
        if isinstance(value, dict): value = value[key]
        elif isinstance(value, list):
            if not re.fullmatch(r"0|[1-9][0-9]*", key):
                raise ValueError("array index")
            if len(key) > len(str(len(value))): raise IndexError(key)
            value = value[int(key)]
        else: raise ValueError("not a container")
    return value
✳Löse einen JSON Pointer in Wörterbüchern und Listen auf, ohne sie zu ändern.
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
01

Projekt

Prüfe den leeren Wurzelzeiger und maskierte Schlüssel und lehne fehlerhafte Maskierungen, fehlende Elemente und nichtkanonische Indizes ab.

02

Vor dem Anwenden prüfen

Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.

03

Modelle

Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.

Arbeitsabläufe

Navigation mit JSON Pointer

Arbeitsabläufe ↗
Arbeitsabläufe
import re
def pointer_get(root, pointer):
    if not isinstance(pointer, str): raise ValueError("pointer text")
    if pointer == "": return root
    if not pointer.startswith("/"): raise ValueError("root slash")
    value = root
    for raw in pointer[1:].split("/"):
        if re.search(r"~(?![01])", raw): raise ValueError("escape")
        key = raw.replace("~1", "/").replace("~0", "~")
        if isinstance(value, dict): value = value[key]
        elif isinstance(value, list):
            if not re.fullmatch(r"0|[1-9][0-9]*", key):
                raise ValueError("array index")
            if len(key) > len(str(len(value))): raise IndexError(key)
            value = value[int(key)]
        else: raise ValueError("not a container")
    return value
KI-Arbeitsumgebung für Code

Eine Abfrage vom Eingabepfad bis zum verwendeten Wert verfolgen

PointerMallow bietet Entwicklern eine KI-Programmierumgebung für Windows, um das Verhalten strukturierter Daten durch ein Projekt zu verfolgen. Eine fehlgeschlagene Abfrage lässt sich leichter diagnostizieren, wenn Pfad, Datenstruktur und erwarteter Wert im Gespräch vorliegen. Beginnen Sie mit einem kleinen reproduzierbaren Testfall und lassen Sie das Modell die Implementierung prüfen, die ihn tatsächlich verarbeitet.

Betrachten Sie eine JSON-Pointer-Abfrage als mögliche Anfrage. Geben Sie einen Objektschlüssel mit Schrägstrich, einen Array-Index und ein fehlendes Ziel an und legen Sie für jeden Fall das gewünschte Ergebnis fest. Fordern Sie eine gezielte Korrektur, wenn der aktuelle Code diese Pfade falsch behandelt. Der Nutzen entsteht durch die Verbindung der Testfälle mit Ihrer Implementierung und ihren Aufrufern.

Prüfen Sie den Vorschlag über sein erfolgreiches Ergebnis hinaus. Ein ungültiger Pfad, ein fehlender Schlüssel und die Navigation durch einen Skalar können in Ihrer Anwendung unterschiedliche Behandlung verlangen. Lesen Sie die Änderungen und führen Sie relevante Tests aus; prüfen Sie den beim Verbraucher ankommenden Fehler ebenso sorgfältig wie den Rückgabewert einer gültigen Abfrage.

Ihre Modellverbindung kann einen unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkt nutzen, bei Bedarf mit Zugangsdaten. Wählen Sie ein dort angebotenes abliteriertes KI-Modell, gelten weiterhin die Einschränkungen des Anbieters. Kontextgrenzen und Werkzeuge variieren nach Modell und Server; bewahren Sie daher kleine Testfälle auf, mit denen Sie Überlegungen und vorgeschlagenen Code direkt bewerten können.

Das Verhalten von Abfragen strukturierter Daten festlegen

Wie unterscheide ich einen fehlerhaften Pfad von einem fehlenden Wert?

Geben Sie für beide getrennte Testfälle und erwartete Ergebnisse an. Fragen Sie, wo im aktuellen Code das Parsen endet und die Navigation beginnt, und prüfen Sie dann, wie jeder Fehler den Aufrufer erreicht. Beide zu einem leeren Ergebnis zusammenzufassen kann einen Eingabefehler verbergen.

Soll ein numerischer Objektschlüssel wie ein Array-Index behandelt werden?

Der umschließende Datentyp ist entscheidend. Nehmen Sie einen Testfall mit numerisch aussehendem Objektschlüssel und einen separaten Array-Testfall auf. Prüfen Sie für jeden den Pfadverarbeitungszweig, statt anzunehmen, gleicher Text bezeichne immer dieselbe Art von Position.

Warum einen kleinen Testfall statt vollständiger Nutzdaten verwenden?

Er isoliert die verantwortliche Datenstruktur und erleichtert die Prüfung des erwarteten Ergebnisses. Entfernen Sie irrelevante Felder und sensible Werte unter Beibehaltung des fehlschlagenden Pfads und bestätigen Sie die Korrektur danach anhand repräsentativer Projektdaten.

Kann die Modellwahl den Abfragevertrag ändern?

Der Vertrag gehört Ihrer Anwendung. Ein anderes Modell mag eine andere Fehlerkonvention vorschlagen, doch das erlaubt keine Verhaltensänderung. Prüfen Sie auch die Ziele der Werkzeuge: Ein lokaler Modellserver macht nicht jedes verbundene Werkzeug lokal.

Für Windows herunterladen ↗

PointerMallow · Aktualisiert 2026-10-25