PPointerMallow
Ruang kerja kode dengan AI

Navigasi JSON Pointer

Telusuri JSON Pointer pada kamus dan daftar tanpa mengubahnya.

● ● ●PointerMallow●
Alur kerja · Navigasi 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
✳Telusuri JSON Pointer pada kamus dan daftar tanpa mengubahnya.
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
01

Proyek

Uji penunjuk akar kosong dan kunci ber-escape, lalu tolak escape rusak, anggota hilang dan indeks tidak kanonis.

02

Tinjau sebelum menerapkan

Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.

03

Model

Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.

Alur kerja

Navigasi JSON Pointer

Alur kerja ↗
Alur kerja
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
Ruang kerja kode dengan AI

Telusuri pencarian dari jalur masukan hingga nilai yang digunakan

PointerMallow memberi pengembang ruang kerja pemrograman AI Windows untuk menelusuri perilaku data terstruktur dalam proyek. Pencarian yang gagal lebih mudah didiagnosis jika jalur, bentuk data, dan nilai yang diharapkan semuanya ada dalam percakapan. Mulailah dengan data uji kecil yang dapat direproduksi dan minta model memeriksa implementasi yang benar-benar menggunakannya.

Pertimbangkan pencarian JSON Pointer sebagai satu permintaan. Berikan kunci objek yang berisi garis miring, indeks array, dan target yang tidak ada, lalu nyatakan hasil yang dimaksud untuk masing-masing. Mintalah perbaikan terarah jika kode saat ini menangani jalur itu secara keliru. Manfaatnya berasal dari menghubungkan data uji dengan implementasi dan pemanggilnya.

Tinjau usulan melampaui hasil yang berhasil. Jalur tidak valid, kunci yang tidak ada, dan penelusuran melalui skalar mungkin memerlukan penanganan berbeda dalam aplikasi. Baca perubahan dan jalankan pengujian yang relevan, dengan memeriksa kesalahan yang disampaikan kepada pengguna hasil sama telitinya dengan nilai hasil pencarian valid.

Koneksi model Anda dapat memakai endpoint kompatibel OpenAI atau Anthropic yang didukung, dengan kredensial sesuai kebutuhan. Jika Anda memilih model AI abliterated yang ditawarkan di sana, batasan penyedia tetap berlaku. Batas konteks dan alat berbeda menurut model dan server, jadi simpan data uji kecil yang memungkinkan penilaian langsung atas penalaran dan kode usulan.

Menentukan perilaku pencarian data terstruktur

Bagaimana membedakan jalur berformat salah dari nilai yang tidak ada?

Berikan data uji dan hasil yang diharapkan secara terpisah untuk keduanya. Tanyakan di mana penguraian berakhir dan penelusuran dimulai dalam kode saat ini, lalu tinjau bagaimana setiap kegagalan mencapai pemanggil. Menggabungkannya menjadi satu hasil kosong dapat menyembunyikan kesalahan masukan.

Haruskah kunci objek numerik diperlakukan seperti indeks array?

Tipe data wadahnya penting. Sertakan data uji dengan kunci objek yang tampak numerik dan data uji array terpisah. Tinjau cabang penanganan jalur untuk masing-masing alih-alih menganggap teks identik selalu menamai jenis lokasi yang sama.

Mengapa menggunakan data uji kecil alih-alih muatan lengkap?

Itu mengisolasi bentuk data penyebab masalah dan mempermudah verifikasi hasil yang diharapkan. Hapus bidang tidak terkait dan nilai sensitif sambil mempertahankan jalur yang gagal, lalu konfirmasikan perbaikan terhadap data proyek yang mewakili setelahnya.

Dapatkah pemilihan model mengubah kontrak pencarian?

Kontrak merupakan milik aplikasi Anda. Model berbeda mungkin menyarankan konvensi kesalahan lain, tetapi itu tidak memberikan izin mengubah perilaku. Tinjau pula tujuan alat: server model lokal tidak menjadikan setiap alat terhubung bersifat lokal.

Unduh untuk Windows ↗

PointerMallow · Diperbarui 2026-10-25