Parse JSON using Python Programming

Berikut adalah contoh bagian-bagian dari struktur file Json, dengan mengetahui bagian-bagian tersebut mempermudah untuk memahami dan memilah data.

Sebelumnya sudah pernah juga menulis tentang parsing file json ini menggunakan perintah linux jq, jika tertarik ini link nya https://nciptandani.blogspot.com/2021/11/cara-parsing-file-json-dengan-jq.html

Pada dasarnya file json terdiri dari key dan value, key berupa string. Satu object file Json bisa terdiri dari berbagai tipe data, seperti string, object, array, int, null, boolean sebagai value nya.

 



Cara membaca file Json di Python





File Json berikut terdiri dari key competitors terdapat value berupa array yang berisi username, school, status online, dan score. File json berikut hanyalah contoh, butuh perhatian disetiap kondisi struktur file json lainnya. Namun jika sudah memahami konsep key value (bisa object, array, string, dll) akan mudah melihat polanya.

{ "competitors":
[
{
"username" : "competitor1",
"school" : "SMK Swasta 1",
"online" : true,
"score" : 987
},
{
"username" : "competitor2",
"school" : "SMK Negeri 7",
"online" : false,
"score" : 432
},
{
"username" : "competitor3",
"school" : "SMK Swasta 2",
"online" : false,
"score" : 321
},
{
"username" : "competitor4",
"school" : "SMK Negeri 10",
"online" : true,
"score" : 654
}
]
}

Oke langsung saja berikut contoh codingannya, dibawah ini akan membaca file json dan menampilkan apa adanya isi dari file json tersebut.

Code dibawah menggunakan package json, kemudian membaca isi file json, load file json dan mengubahnya menjadi python object.

import json

# Open & read the file
with open("jsonfile.json") as file:
data = json.load(file)

# Print the file in console
print(data)


Selanjutnya misalnya ingin menampilkan isi data didalam key competitors maka ubah line ke 8 bagian print(data) menjadi 

print(data['competitors']) maka akan tampil semua value yang berupa array seperti berikut:

[{'username': 'competitor1', 'school': 'SMK Swasta 1', 'online': True, 'score': 987}, {'username': 'competitor2', 'school': 'SMK Negeri 7', 'online': False, 'score': 432}, {'username': 'competitor3', 'school': 'SMK Swasta 2', 'school': False, 'score': 321}, {'username': 'competitor4', 'school': 'SMK Negeri 10', 'online': True, 'score': 654}]

Untuk menampilan data user1 ubah print menjadi seperti ini maka cukup menambahkan angka index array sesuai data yang ingin ditampilkan

print(data['competitors'][0])

Data yang tampil:

{'username': 'competitor1', 'school': 'SMK Swasta 1', 'online': True, 'score': 987}


Kemudian bagaimana caranya supaya menampilan username saja, berikut codenya:
karena didalam json key competitors berupa array bisa menggunakan loop untuk menampilkan isi datanya:

import json

# Open & read the file
with open("jsonfile.json") as file:
data = json.load(file)

# Print the file in console
# print(data['competitors'])

# for printing the key-value pair
for i in data['competitors']:
print(i['username'])


output:

nasohi@workstation:~/PYTHON$ python3 parsingjson.py 
competitor1
competitor2
competitor3
competitor4


Case selanjutnya yaitu mencoba untuk memfilter nya misalnya hanya menampilkan yang score nya lebih dari 700.
Jika dicek menggunakan print(type(data['competitors']))
berupa tipe data list sehingga perlu melakukan looping.


Code:

import json

# Open & read the file
with open("jsonfile.json") as file:
data = json.load(file)

# for filtering & printing the key-value pair
for i in data['competitors']:
if (i['score'] >= 700):
print(i['username'])


Okey cukup sekian tutorial ini, let me know in the comments jika ada yang perlu dikoreksi/optimasi, thank you.







Komentar

Postingan populer dari blog ini

Pembahasan IT Network Systems Administration Module A DNS (Forward Zone, Reverse Zone, CNAME, MX, Split View)

Cara restart / stop windows service (services.msc) dengan bat / cmd

How to convert VMDK to OVA