Projet
Testez la racine vide et les clés échappées, en rejetant les échappements incorrects, les membres absents et les indices non canoniques.
Résolvez un JSON Pointer dans des dictionnaires et listes sans les modifier.
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 valueTestez la racine vide et les clés échappées, en rejetant les échappements incorrects, les membres absents et les indices non canoniques.
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
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 valuePointerMallow offre aux développeurs un espace de programmation avec IA pour Windows permettant de suivre le comportement de données structurées à travers un projet. Une recherche échouée est plus facile à diagnostiquer si le chemin, la structure des données et la valeur attendue figurent dans la conversation. Commencez par un petit cas reproductible et demandez au modèle d’inspecter le code qui le consomme réellement.
Prenez pour demande une recherche JSON Pointer. Fournissez une clé d’objet contenant une barre oblique, un indice de tableau et une cible absente, puis précisez le résultat voulu pour chacun. Demandez une correction ciblée si le code actuel traite mal ces chemins. L’intérêt vient du lien entre les cas de test, votre implémentation et ses appelants.
Examinez la proposition au-delà du résultat réussi. Un chemin invalide, une clé absente et la traversée d’un scalaire peuvent nécessiter des traitements distincts dans votre application. Lisez les changements et exécutez les tests pertinents, en vérifiant l’erreur présentée au consommateur aussi soigneusement que la valeur renvoyée pour une recherche valide.
Votre connexion de modèle peut utiliser un point de terminaison compatible OpenAI ou Anthropic pris en charge, avec les identifiants requis. Si vous choisissez un modèle d’IA ablaté qui y est proposé, les restrictions du fournisseur restent applicables. Les limites de contexte et les outils varient selon le modèle et le serveur ; conservez donc de petits cas permettant d’évaluer directement le raisonnement et le code proposé.
Fournissez des cas de test et des résultats attendus distincts. Demandez où finit l’analyse et où commence la traversée dans le code actuel, puis examinez comment chaque échec atteint l’appelant. Les réduire à un seul résultat vide peut masquer une erreur d’entrée.
Le type du conteneur compte. Incluez un cas avec une clé d’objet d’apparence numérique et un autre avec un tableau. Examinez la branche de traitement du chemin pour chacun, plutôt que de supposer qu’un texte identique désigne toujours le même type d’emplacement.
Il isole la structure responsable du problème et facilite la vérification du résultat attendu. Retirez les champs sans rapport et les valeurs sensibles en conservant le chemin défaillant, puis confirmez ensuite la correction sur des données représentatives du projet.
Le contrat appartient à votre application. Un autre modèle peut suggérer une autre convention d’erreur, mais cela n’autorise pas un changement de comportement. Vérifiez aussi les destinations des outils : un serveur de modèles local ne rend pas tous les outils connectés locaux.
PointerMallow · Mis à jour 2026-10-25