Uygulamayı indirin
Bir klasör seçin ve düzenlemeden önce ilgili dosyaları okumasını asistandan isteyin. Görevin hedefini ve sınırlarını belirleyin.
Sözlük ve listelerde bir JSON Pointer çözümleyin ve girdileri değiştirmeyin. Boş kök işaretçisini ve kaçışlı anahtarları deneyerek bozuk kaçışları, eksik üyeleri ve kanonik olmayan indisleri reddedin.
Bir klasör seçin ve düzenlemeden önce ilgili dosyaları okumasını asistandan isteyin. Görevin hedefini ve sınırlarını belirleyin.
Uyumlu bir endpoint seçin. Kullanılabilir araçlar ve yanıt kalitesi, yapılandırılan modele ve sunucuya bağlıdır.
Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.
Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.
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 valueUygulamadan önce inceleyin. Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.