PPointerMallow
Ambiente de programação com IA

Navegação por JSON Pointer

Resolva um JSON Pointer em dicionários e listas sem alterá-los.

● ● ●PointerMallow●
Fluxos de trabalho · Navegação por 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
✳Resolva um JSON Pointer em dicionários e listas sem alterá-los.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
01

Projeto

Teste o ponteiro raiz vazio e chaves escapadas, rejeitando escapes malformados, membros ausentes e índices não canônicos.

02

Revise antes de aplicar

Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.

03

Modelos

Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.

Fluxos de trabalho

Navegação por JSON Pointer

Fluxos de trabalho ↗
Fluxos de trabalho
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
Ambiente de programação com IA

Rastreie uma consulta do caminho de entrada ao valor utilizado

PointerMallow oferece a desenvolvedores um ambiente de programação com IA para Windows para rastrear comportamentos de dados estruturados em um projeto. Uma consulta com falha é mais fácil de diagnosticar quando caminho, estrutura de dados e valor esperado estão presentes na conversa. Comece com um pequeno caso reproduzível e peça ao modelo que inspecione a implementação que realmente o consome.

Considere uma consulta JSON Pointer como solicitação. Forneça uma chave de objeto que contenha barra, um índice de array e um destino ausente, e declare o resultado pretendido para cada um. Peça uma correção focada se o código atual tratar esses caminhos incorretamente. O valor vem de conectar os casos de teste à sua implementação e aos chamadores.

Revise a proposta além do resultado bem-sucedido. Um caminho inválido, uma chave ausente e a passagem por um escalar podem exigir tratamentos distintos na aplicação. Leia as alterações e execute os testes pertinentes, conferindo o erro apresentado ao consumidor com o mesmo cuidado que o valor retornado para uma consulta válida.

A conexão ao modelo pode usar um endpoint suportado compatível com OpenAI ou da Anthropic, com credenciais conforme exigido. Se escolher um modelo de IA abliterado oferecido ali, as restrições do provedor continuam válidas. Limites de contexto e ferramentas variam conforme modelo e servidor; mantenha casos pequenos que permitam avaliar diretamente o raciocínio e o código proposto.

Especifique o comportamento de consulta de dados estruturados

Como distinguir um caminho malformado de um valor ausente?

Forneça casos separados e resultados esperados para ambos. Pergunte onde termina a análise do caminho e começa a navegação no código atual e revise como cada falha chega ao chamador. Reduzi-las a um único resultado vazio pode ocultar um erro de entrada.

Uma chave numérica de objeto deve ser tratada como índice de array?

O tipo dos dados que a contêm importa. Inclua um caso com uma chave de objeto de aparência numérica e outro caso separado com array. Revise o ramo de tratamento de caminhos de cada um, sem presumir que texto idêntico sempre indique o mesmo tipo de localização.

Por que usar um caso pequeno em vez de um payload completo?

Ele isola a estrutura de dados responsável pelo problema e facilita verificar o resultado esperado. Remova campos irrelevantes e valores sensíveis preservando o caminho com falha e depois confirme a correção com dados representativos do projeto.

A seleção do modelo pode mudar o contrato da consulta?

O contrato pertence à aplicação. Outro modelo pode sugerir uma convenção de erro diferente, mas isso não autoriza uma mudança de comportamento. Revise também os destinos das ferramentas: um servidor local de modelos não torna local toda ferramenta conectada.

Baixar para Windows ↗

PointerMallow · Atualizado 2026-10-25