Memformat output JSON
Pelajaran 5 dari 9 dalam kursus JSON Python di Coddy.
Saat bekerja dengan data JSON, memformat output agar lebih mudah dibaca sering kali berguna. Fungsi json.dumps() Python menyediakan parameter untuk mengatur format output JSON agar lebih mudah dibaca manusia. Proses ini sering disebut "pretty-printing".
Parameter indent
Parameter indent dalam json.dumps() memungkinkan kamu menentukan jumlah spasi untuk indentasi. Ini menghasilkan struktur hierarkis yang lebih mudah dibaca:
import json
data = {"name": "John", "age": 30, "city": "New York"}
# Tanpa indentasi
print(json.dumps(data))
# Dengan indentasi
print(json.dumps(data, indent=2))
Output dengan indent=2 akan menjadi:
{
"name": "John",
"age": 30,
"city": "New York"
}
Parameter separators
Parameter separators memungkinkan kamu menentukan pemisah untuk item dan pasangan kunci-nilai. Parameter ini berupa tuple yang terdiri dari dua string: (item_separator, key_separator).
# Pemisah bawaan
print(json.dumps(data, indent=2))
# Pemisah khusus
print(json.dumps(data, indent=2, separators=(', ', ': ')))
Pemisah default-nya adalah (', ', ': '). Kamu dapat menggunakan parameter ini untuk membuat output lebih ringkas atau menambahkan spasi ekstra.
Menggabungkan Parameter
Kamu dapat menggabungkan parameter ini untuk mengatur output JSON dengan lebih cermat:
formatted_json = json.dumps(data, indent=4, separators=(', ', ': '))
print(formatted_json)
Kombinasi ini menghasilkan output JSON yang tertata rapi dan mudah dibaca. Ini sangat berguna saat bekerja dengan struktur bertingkat yang kompleks atau saat kamu perlu menyajikan data JSON dalam format yang lebih mudah dibaca manusia.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Tantangan
MudahBuat fungsi yang memformat struktur JSON bertingkat dengan indentasi dan pemisah khusus. Fungsi tersebut harus:
- Menerima tiga parameter: dictionary atau list Python, tingkat indentasi, dan flag boolean untuk output ringkas.
- Menggunakan
json.dumps()untuk mengubah input menjadi string JSON. - Mengatur indentasi ke tingkat yang ditentukan jika flag ringkas bernilai False, jika tidak, gunakan tanpa indentasi.
- Menggunakan koma yang diikuti spasi (", ") sebagai pemisah item dan titik dua yang diikuti spasi (": ") sebagai pemisah kunci jika flag ringkas bernilai False. Gunakan koma (",") dan titik dua (":") tanpa spasi jika flag ringkas bernilai True.
- Mengembalikan string JSON yang telah diformat.
Input berikut akan diberikan:
{"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}}
4
false
Cetak string JSON yang dihasilkan.
Coba sendiri
import json
# Baca input
json_input = input()
indent_level = int(input())
compact = input().lower() == 'true'
# Uraikan input JSON
data = json.loads(json_input)
def format_json(data, indent, compact):
# TODO: Tulis kodemu di sini
# Buat fungsi pemformatan JSON khusus
pass
# Format JSON dan cetak hasilnya
formatted_json = format_json(data, indent_level, compact)
print(formatted_json)Semua pelajaran di JSON Python
Latihan sendiri: Compiler Python online
Format dan jelajahi JSON apa pun: Pemformat JSON