Penolakan anggota JSON ganda
Tolak anggota JSON berulang pada setiap kedalaman alih-alih mempertahankan nilai terakhir.
import json
def unique_members(pairs):
result = {}
for key, value in pairs:
if key in result:
raise ValueError("member.duplicate")
result[key] = value
return result
def reject_constant(value):
raise ValueError("constant.invalid")
def parse_unique(text):
return json.loads(text, object_pairs_hook=unique_members,
parse_constant=reject_constant)| Tinjau sebelum menerapkan | Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain. |
|---|---|
| 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. |
| Proyek | Uji kunci dengan escape setara dan literal NaN atau Infinity sambil mengizinkan nama sama dalam objek berbeda. |
import json
def unique_members(pairs):
result = {}
for key, value in pairs:
if key in result:
raise ValueError("member.duplicate")
result[key] = value
return result
def reject_constant(value):
raise ValueError("constant.invalid")
def parse_unique(text):
return json.loads(text, object_pairs_hook=unique_members,
parse_constant=reject_constant)Jadikan JSON yang ditolak bagian dari kontrak aplikasi
KeySentra menawarkan ruang kerja pemrograman Windows untuk membahas perubahan sumber dengan model AI terhubung. Tugas penguraian harus dimulai dari aturan penerimaan aplikasi, bukan sekadar permintaan membaca JSON. Buka folder proyek dan identifikasi tempat teks memasuki pengurai serta tempat objek hasil penguraian menjadi data aplikasi tepercaya.
Misalnya, Anda dapat meminta penolakan anggota objek berulang alih-alih diam-diam mempertahankan suatu nilai. Sertakan objek bersarang dan kunci dengan escape yang setara dalam pembahasan, lalu jelaskan cara kode pemanggil melaporkan masukan ditolak. Tujuannya adalah perubahan yang dapat ditinjau pada alur penerimaan data Anda; ruang kerja itu sendiri tidak menjadi pengurai JSON aplikasi.
Baca suntingan usulan bersama data uji yang membedakan masukan ambigu dari pengulangan valid di objek berbeda. Periksa konstanta numerik nonstandar jika kontrak menolaknya. Jalankan kasus itu dengan alat proyek dan periksa hasil pengurai serta perilaku kode pemanggil, agar penanganan masukan yang lebih ketat tidak tiba-tiba mengubah kesalahan klien yang diharapkan menjadi kegagalan tak tertangani.
KeySentra mendukung koneksi endpoint kompatibel OpenAI atau Anthropic, menggunakan kredensial bila diperlukan. Model AI tanpa filter mungkin merupakan salah satu pilihan yang disediakan endpoint itu. Label tersebut tidak menentukan kebijakan pengurai Anda atau menjamin penggunaan layanan tanpa filter. Model dan server tetap menentukan kapasitas konteks, dukungan alat, serta ketentuan operasionalnya sendiri.
Pertanyaan tentang pengetatan penerimaan JSON
Contoh duplikat apa yang membantu tinjauan?
Sertakan kunci berulang dalam satu objek, duplikat bersarang, dan ejaan escape yang didekode menjadi nama sama. Sertakan juga objek terpisah yang secara sah memakai kunci sama. Usulan harus membedakan kasus-kasus ini menurut kebijakan yang Anda nyatakan.
Haruskah setiap nama anggota berulang ditolak?
Nyatakan cakupan dengan cermat: nama berulang dalam satu objek berbeda dari nama sama dalam objek terpisah. Minta model memeriksa cara pengurai melacak batas objek, lalu verifikasi bahwa struktur bersarang yang sah tetap diterima aplikasi.
Mengapa memeriksa kode pemanggil setelah penguraian diperketat?
Kasus penolakan baru harus mencapai jalur respons atau kesalahan yang diharapkan aplikasi. Tunjukkan kode pemanggil itu dalam percakapan dan uji perilakunya. Mendeteksi ambiguitas dengan benar belum cukup jika kegagalan yang timbul ditangani secara salah di bagian permintaan lainnya.
Bisakah muatan produksi digunakan sebagai data uji?
Utamakan muatan ringkas yang telah dibersihkan dari informasi sensitif sambil mempertahankan struktur kunci dan kasus numerik terkait. Endpoint yang dikonfigurasi menerima konteks yang Anda bagikan, dan alat terhubung mungkin memiliki tujuan terpisah. Jangan sertakan data pelanggan dan kredensial dalam contoh yang tidak memerlukannya.
KeySentra · Diperbarui 2026-10-25