Skip to content

Data Transform

CSV, JSON, XML, YAML parsing, generation, and pipeline transformations.

16 modules

ModuleDescription
Baca File CSVBaca dan parse file CSV ke array objek
Tulis File CSVTulis array objek ke file CSV
Parse JSONParse string JSON ke objek
JSON StringifyKonversi objek ke string JSON
JSON ke CSVKonversi data atau file JSON ke format CSV
Pipa DataRangkaikan beberapa transformasi data dalam satu langkah
Template TeksIsi template teks dengan variabel
Hasilkan XMLHasilkan string XML dari objek atau array
Parse XMLParse string XML menjadi objek
Hasilkan YAMLHasilkan string YAML dari objek atau array
Parse YAMLParse string YAML menjadi objek
Kunci ObjekAmbil semua kunci dari objek
Gabung ObjekGabungkan beberapa objek menjadi satu
Omit ObjekHapus kunci tertentu dari objek
Pick ObjekPilih kunci tertentu dari objek
Nilai ObjekAmbil semua nilai dari objek

Modules

Baca File CSV

data.csv.read

Baca dan parse file CSV ke array objek

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
delimiterselect (,, ;, , `, `)No,
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
skip_headerbooleanNoFalseSkip first row (header)

Output:

FieldTypeDescription
statusstringStatus operasi
dataarrayStatus operasi
rowsnumberStatus operasi
columnsarrayArray objek baris

Example: Example

yaml
file_path: data/users.csv
delimiter: ,
encoding: utf-8

Tulis File CSV

data.csv.write

Tulis array objek ke file CSV

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
dataarrayYes-Array of data items to process
delimiterselect (,, ;, , `, `)No,
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file

Output:

FieldTypeDescription
statusstringStatus operasi
file_pathstringStatus operasi
rows_writtennumberStatus operasi

Example: Example

yaml
file_path: output/results.csv
data: [{"name": "John", "score": 95}, {"name": "Jane", "score": 87}]

Parse JSON

data.json.parse

Parse string JSON ke objek

Parameters:

NameTypeRequiredDefaultDescription
json_stringstringYes-JSON string to parse into an object or array

Output:

FieldTypeDescription
statusstringStatus operasi
dataobjectStatus operasi

Example: Example

yaml
json_string: {"name": "John", "age": 30}

JSON Stringify

data.json.stringify

Konversi objek ke string JSON

Parameters:

NameTypeRequiredDefaultDescription
dataobjectYes-Data object to process
prettybooleanNoFalseFormat with indentation
indentnumberNo2Indentation spaces (if pretty=true)

Output:

FieldTypeDescription
statusstringStatus operasi
jsonstringStatus operasi

Example: Example

yaml
data: {"name": "John", "age": 30}
pretty: true

JSON ke CSV

data.json_to_csv

Konversi data atau file JSON ke format CSV

Parameters:

NameTypeRequiredDefaultDescription
input_dataanyYes-JSON data (array of objects) or path to JSON file
output_pathstringNo/tmp/output.csvPath where the output file will be saved
delimiterselect (,, ;, , `, `)No,
include_headerbooleanNoTrueInclude column headers in first row
flatten_nestedbooleanNoTrueFlatten nested objects using dot notation (e.g., address.city)
columnsarrayNo[]Specific columns to include (empty = all columns)

Output:

FieldTypeDescription
output_pathstringPath ke file CSV yang dihasilkan
row_countnumberPath ke file CSV yang dihasilkan
column_countnumberPath ke file CSV yang dihasilkan
columnsarrayJumlah baris yang ditulis

Example: Convert JSON array to CSV

yaml
input_data: [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]
output_path: /tmp/users.csv

Example: Convert JSON file

yaml
input_data: /path/to/data.json
output_path: /path/to/output.csv

Pipa Data

data.pipeline

Rangkaikan beberapa transformasi data dalam satu langkah

Parameters:

NameTypeRequiredDefaultDescription
inputanyYes-Data masukan untuk ditransformasi (array atau objek)
stepsarrayYes-Data masukan untuk ditransformasi (array atau objek)

Output:

FieldTypeDescription
resultanyArray langkah transformasi yang diterapkan secara berurutan
original_countintegerData yang telah ditransformasi
result_countintegerData yang telah ditransformasi
steps_appliedintegerJumlah item setelah transformasi

Example: Example

yaml
input: ${input.users}
steps: [{"filter": {"field": "active", "condition": "eq", "value": true}}, {"sort": {"field": "name", "order": "asc"}}]

Example: Example

yaml
input: ${input.records}
steps: [{"map": {"extract": "id"}}, {"limit": 10}]

Example: Example

yaml
input: ${input.data}
steps: [{"filter": {"field": "status", "condition": "eq", "value": "completed"}}, {"pick": ["id", "name", "timestamp"]}, {"sort": {"field": "timestamp", "order": "desc"}}, {"skip": 5}, {"limit": 20}]

Template Teks

data.text.template

Isi template teks dengan variabel

Parameters:

NameTypeRequiredDefaultDescription
templatestringYes-Text template with {variable} placeholders
variablesobjectYes-Object with variable values

Output:

FieldTypeDescription
statusstringStatus operasi
resultstringStatus operasi

Example: Example

yaml
template: Hello {name}, you scored {score} points!
variables: {"name": "Alice", "score": 95}

Hasilkan XML

data.xml.generate

Hasilkan string XML dari objek atau array

Parameters:

NameTypeRequiredDefaultDescription
dataobjectYes-Data untuk dikonversi ke XML
root_tagstringNorootNama tag elemen root
prettybooleanNoTrueCetak indah output XML
encodingstringNoutf-8Pengkodean karakter untuk output XML
declarationbooleanNoTrueSertakan header deklarasi XML

Output:

FieldTypeDescription
xmlstringString XML yang dihasilkan

Example: Example

yaml
data: {"user": {"@attributes": {"id": "1"}, "name": "John", "age": "30"}}
root_tag: users
pretty: true

Parse XML

data.xml.parse

Parse string XML menjadi objek

Parameters:

NameTypeRequiredDefaultDescription
contentstringNo-String XML untuk di-parse
file_pathstringNo-Jalur ke file XML untuk di-parse
preserve_attributesbooleanNoTruePertahankan atribut XML dalam output yang di-parse

Output:

FieldTypeDescription
resultobjectXML yang di-parse sebagai objek
root_tagstringNama tag elemen root

Example: Example

yaml
content: <users><user id="1"><name>John</name></user></users>
preserve_attributes: true

Hasilkan YAML

data.yaml.generate

Hasilkan string YAML dari objek atau array

Parameters:

NameTypeRequiredDefaultDescription
dataanyYes-Data untuk dikonversi ke YAML
default_flow_stylebooleanNoFalseGunakan gaya aliran untuk struktur bersarang
sort_keysbooleanNoFalseUrutkan kunci secara alfabetis
indentnumberNo2Jumlah spasi untuk indentasi
allow_unicodebooleanNoTrueIzinkan karakter unicode dalam output

Output:

FieldTypeDescription
yamlstringString YAML yang dihasilkan

Example: Example

yaml
data: {"name": "John", "age": 30, "cities": ["NYC", "LA"]}
sort_keys: false
indent: 2

Parse YAML

data.yaml.parse

Parse string YAML menjadi objek

Parameters:

NameTypeRequiredDefaultDescription
contentstringNo-String YAML untuk di-parse
file_pathstringNo-Jalur ke file YAML untuk di-parse
multi_documentbooleanNoFalseParse YAML multi-dokumen (dipisahkan oleh ---)

Output:

FieldTypeDescription
resultanyYAML yang di-parse sebagai objek atau array
typestringJenis hasil yang di-parse

Example: Example

yaml
content: name: John
age: 30
cities:
  - NYC
  - LA
multi_document: false

Example: Example

yaml
content: ---
name: John
---
name: Jane
multi_document: true

Kunci Objek

object.keys

Ambil semua kunci dari objek

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary

Output:

FieldTypeDescription
keysarrayDaftar kunci objek
countnumberDaftar kunci objek

Example: Get object keys

yaml
object: {"name": "John", "age": 30, "city": "NYC"}

Gabung Objek

object.merge

Gabungkan beberapa objek menjadi satu

Parameters:

NameTypeRequiredDefaultDescription
objectsarrayYes-Array of objects to process

Output:

FieldTypeDescription
resultobjectObjek yang digabungkan

Example: Merge user data

yaml
objects: [{"name": "John", "age": 30}, {"city": "NYC", "country": "USA"}, {"job": "Engineer"}]

Omit Objek

object.omit

Hapus kunci tertentu dari objek

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary
keysarrayYes-Keys to pick or omit

Output:

FieldTypeDescription
resultobjectObjek tanpa kunci yang dihapus

Example: Omit sensitive fields

yaml
object: {"name": "John", "age": 30, "password": "secret", "ssn": "123-45-6789"}
keys: ["password", "ssn"]

Pick Objek

object.pick

Pilih kunci tertentu dari objek

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary
keysarrayYes-Keys to pick or omit

Output:

FieldTypeDescription
resultobjectObjek dengan hanya kunci yang dipilih

Example: Pick user fields

yaml
object: {"name": "John", "age": 30, "email": "john@example.com", "password": "secret"}
keys: ["name", "email"]

Nilai Objek

object.values

Ambil semua nilai dari objek

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary

Output:

FieldTypeDescription
valuesarrayDaftar nilai objek
countnumberDaftar nilai objek

Example: Get object values

yaml
object: {"name": "John", "age": 30, "city": "NYC"}

Released under the Apache 2.0 License.