PPointerMallow
Espacio de programación con IA

Navegación con JSON Pointer

Resuelve un JSON Pointer sobre diccionarios y listas sin modificarlos.

● ● ●PointerMallow●
Flujos de trabajo · Navegación con 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
✳Resuelve un JSON Pointer sobre diccionarios y listas sin modificarlos.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Proyecto

Prueba el puntero raíz vacío y claves escapadas, rechazando escapes incorrectos, miembros ausentes e índices no canónicos.

02

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

03

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

Flujos de trabajo

Navegación con JSON Pointer

Flujos de trabajo ↗
Flujos de trabajo
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
Espacio de programación con IA

Sigue una búsqueda desde la ruta de entrada hasta el valor utilizado

PointerMallow ofrece a los desarrolladores un entorno de programación con IA para Windows donde seguir el comportamiento de datos estructurados a través de un proyecto. Es más fácil diagnosticar una búsqueda fallida cuando la conversación incluye la ruta, la estructura de datos y el valor esperado. Empieza por un caso de prueba pequeño y reproducible y pide al modelo que inspeccione la implementación que realmente lo consume.

Considera como solicitud una búsqueda mediante JSON Pointer. Proporciona una clave de objeto que contenga una barra, un índice de matriz y un destino inexistente, e indica el resultado previsto para cada uno. Solicita una corrección concreta si el código actual trata incorrectamente esas rutas. El valor reside en vincular los casos de prueba con tu implementación y el código que la llama.

Revisa la propuesta más allá del resultado correcto. Una ruta no válida, una clave inexistente y un recorrido a través de un escalar pueden requerir tratamientos distintos en tu aplicación. Lee los cambios y ejecuta las pruebas pertinentes, comprobando el error que llega al consumidor con tanto cuidado como el valor devuelto para una búsqueda válida.

La conexión del modelo puede usar un servicio compatible con OpenAI o Anthropic admitido, con credenciales cuando se requieran. Si eliges un modelo de IA sin censura ofrecido allí, las restricciones del proveedor siguen siendo aplicables. Los límites de contexto y las herramientas varían según el modelo y el servidor, por lo que conviene conservar casos pequeños que permitan evaluar directamente el razonamiento y el código propuesto.

Especificar el comportamiento de búsqueda de datos estructurados

¿Cómo distingo una ruta mal formada de un valor inexistente?

Proporciona casos de prueba y resultados esperados separados para ambos. Pregunta dónde termina el análisis y empieza el recorrido en el código actual, y revisa cómo llega cada fallo al código que lo llama. Reducirlos a un único resultado vacío puede ocultar un error de entrada.

¿Debe una clave numérica de objeto tratarse como un índice de matriz?

Importa el tipo de datos que la contiene. Incluye un caso con una clave de objeto de apariencia numérica y otro separado con una matriz. Revisa la rama de gestión de rutas de cada uno en vez de suponer que un texto idéntico siempre identifica el mismo tipo de ubicación.

¿Por qué usar un caso pequeño en vez de una carga completa?

Aísla la estructura de datos responsable del problema y facilita verificar el resultado esperado. Elimina campos ajenos y valores sensibles conservando la ruta que falla, y confirma después la corrección con datos representativos del proyecto.

¿Puede la elección del modelo cambiar el contrato de búsqueda?

El contrato pertenece a tu aplicación. Otro modelo puede sugerir una convención de errores distinta, pero eso no autoriza un cambio de comportamiento. Revisa también los destinos de las herramientas: un servidor de modelos local no hace locales todas las herramientas conectadas.

Descargar para Windows ↗

PointerMallow · Actualizado 2026-10-25