Topik ini menjelaskan nilai-nilai parameter mode dalam berbagai fungsi. Parameter mode menentukan mode ekstraksi field.
Fungsi Terkait
Tabel berikut menjelaskan fungsi-fungsi yang menggunakan parameter mode serta nilai default untuk parameter mode pada setiap fungsi.
Kategori | Fungsi | Nilai default mode |
Fungsi Penetapan Nilai | overwrite | |
Fungsi Ekstraksi Nilai | fill-auto | |
fill-auto | ||
fill-auto | ||
fill-auto | ||
fill-auto | ||
overwrite | ||
overwrite | ||
Fungsi Pemetaan dan Pengayaan | fill-auto | |
fill-auto |
Mode Pengecekan dan Penimpaan Ekstraksi Field
Tabel berikut menjelaskan nilai-nilai parameter mode.
Nilai | Deskripsi |
fill | Menetapkan field baru jika field tidak ada atau jika field sudah ada tetapi nilainya adalah string kosong. |
fill-auto | Menetapkan field baru jika nilai baru bukan string kosong dan salah satu kondisi berikut terpenuhi: Field tidak ada. Field sudah ada tetapi nilainya adalah string kosong. |
add | Menetapkan field baru jika field tidak ada. |
add-auto | Menetapkan field baru jika nilai baru bukan string kosong dan field tidak ada. |
overwrite | Selalu menetapkan field baru. |
overwrite-auto | Menetapkan field baru jika nilai baru bukan string kosong. |
Tabel berikut memberikan contoh cara kerja fungsi dalam mode yang berbeda.
Log mentah
a: # String kosong b: 100Contoh Transformasi
Mode
Aturan Transformasi
Hasil
add
e_set("c", "123", mode='add')a:# String kosong b: 100 c: 123e_set("c", "", mode='add')a:# String kosong b: 100 c:e_set("a", "123", mode='add')a:# String kosong b: 100add-auto
e_set("c", "", mode='add-auto')Field
ctidak ditambahkan, dan log mentah tetap tidak berubah.fill
e_set("c", "123", mode='fill')a:# String kosong b: 100 c: 123e_set("c", "", mode='fill')a:# String kosong b: 100 c:e_set("a", "123", mode='fill')a: 123 b: 100e_set("b", "123", mode='fill')Field b tetap
b: 100.fill-auto
e_set("c", "", mode='fill-auto')Field
ctidak ditambahkan, dan log mentah tetap tidak berubah.overwrite
e_set("c", "123", mode='overwrite')a:# String kosong b: 100 c: 123e_set("c", "", mode='overwrite')a:# String kosong b: 100 c:e_set("b", "200", mode='overwrite')a:# String kosong b: 200e_set("b", "", mode='overwrite')a:# String kosong b:overwrite-auto
e_set("b", "", mode='overwrite-auto')Field b tetap
b: 100.
Batasan Nama Field untuk Ekstraksi
Fungsi seperti e_json, e_kv, e_kv_delimit, dan e_regex didukung.
Hanya field dengan nama yang mematuhi batasan tertentu yang dapat diekstraksi. Field dengan nama yang tidak sesuai dengan batasan akan dibuang. Ekspresi reguler u'_*[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\u4e00-\u9fa5\u0800-\u4e00\\w\\.\\-]*' tidak didukung. Sebagai contoh, field dengan nama yang cocok dengan 123=abc, __1__:100, 1k=200, atau {"123": "456"} akan dibuang.
Contoh berikut menunjukkan cara menerapkan batasan default suatu fungsi pada nama field:
Log mentah
data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } }Aturan Transformasi
e_json( "data", fmt="parent", sep="@", prefix="__", suffix="__", include_node=r"[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\w\-\.]*", mode="fill-auto", )Hasil
data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } } data@__k1__:100 k2@__k3__:200 k4@__k5__:300