PYTHON
Pendahuluan
Pada artikel ini saya akan membahas dan membuat cara cetak json cantik pada python. Pada artikel sebelumnya saya telah menjelaskan apa itu pretty json kamu bisa cek di sini nah sebelumnya saya akan menjelaskan dulu apa itu JSON. JSON kepanjangan nya JavaScript Object Notation secara umum ini merupakan format data dan JSON ini kebanyakan untuk di gunakan mengirimkan atau mentransmisikan data antara klien dan server pada aplikasi web. Misal saya mau minta data film spiderman dari server imdb nah maka server imdb akan menerima permintaan saya dan mengembalikan berupa format data JSON Dan ini ada kaitannya juga soal API (Application Programming Interface) jika kamu pernah mengembangkan web pada teknologi front end dengan bahasa pemrograman javascript lalu kamu menggunakan fitur fetch nya untuk menggunakan API pasti kamu akan lebih tahu soal beginian.
Memahami dasar JSON bahkan bagaimana cara mengolahnya tentu ini sangat kepake sebagai seorang programmer dan developer. Kamu akan selalu bekerja dengan file JSON ketika kamu berurusan dengan API suatu saat nanti ketika kamu memulai sebuah projek kamu tersebut hal ini sangatlah tidak terpisahkan file JSON tersebut.
Pada struktur JSON itu mirip pada objek literal bahasa pemrograman javascript kamu bisa lihat di bawah ini :
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
},
{
"name": "Eternal Flame",
"age": 1000000,
"secretIdentity": "Unknown",
"powers": [
"Immortality",
"Heat Immunity",
"Inferno",
"Teleportation",
"Interdimensional travel"
]
}
]
}
Bagaimana Cara Cetak Json Dengan Cantik?
Sebenarnya ketika kita berhasil menerima file JSON dari API, file JSON tersebut ketika di tampilkan pada terminal akan berposisi horizontal hal ini akan sangat membingungkan untuk mencari key dan value terhadap file JSON tentu saja kita harus ubah posisi vertikal pada file JSON tersebut dengan hal ini bisa di sebut pretty json. Ada 3 cara yang saya tahu untuk cetak file JSON dengan cantik ketika kamu berhasil menampilkan file JSON pada API yang pertama yaitu dengan cara menggunakan for pada python yang kedua dengan module bawahan python yaitu pprint yang ketiga menggunakan cara with open kamu pasti pernah lihat lah ini bisa di bilang membaca sebuah file. Dalam hal ini kamu perlu install dulu sebuah library requests kita tahu library ini lebih sederhana dan kuat ketika kita bekerja terhadap permintaan HTTP untuk install nya kamu bisa buka terminal kamu dan ketik seperti di bawah ini :
pip install requests
Namun kita harus punya dulu API nya tenang saja kita akan gunakan API github untuk mencari dan melihat data akun github seseorang untuk itu kamu bisa lihat API nya di bawah ini :
'https://api.github.com/users/'
1. Menggunakan For Pada Python
Untuk cara pertama ini cukup mudah kamu bisa gunakan for kamu bisa lihat contoh kode program nya di bawah ini :
import argparse, requests
parser = argparse.ArgumentParser()
parser.add_argument('-g', '--github', type=str, help='melakukan pencarian dan melihat data akun github')
args = parser.parse_args()
if args.github:
username = args.github
url = f'https://api.github.com/users/{username}'
response = requests.get(url)
if response.status_code == 200 and requests.codes.ok:
data = response.json()
for i in data:
print(f'[+] {i} : ', data[i])
Hasil nya bisa di lihat di bawah ini :
C:\Users\galihap\Documents>main.py -g sundowndev
[+] login : sundowndev
[+] id : 16480203
[+] node_id : MDQ6VXNlcjE2NDgwMjAz
[+] avatar_url : https://avatars.githubusercontent.com/u/16480203?v=4
[+] gravatar_id :
[+] url : https://api.github.com/users/sundowndev
[+] html_url : https://github.com/sundowndev
[+] followers_url : https://api.github.com/users/sundowndev/followers
[+] following_url : https://api.github.com/users/sundowndev/following{/other_user}
[+] gists_url : https://api.github.com/users/sundowndev/gists{/gist_id}
[+] starred_url : https://api.github.com/users/sundowndev/starred{/owner}{/repo}
[+] subscriptions_url : https://api.github.com/users/sundowndev/subscriptions
[+] organizations_url : https://api.github.com/users/sundowndev/orgs
[+] repos_url : https://api.github.com/users/sundowndev/repos
[+] events_url : https://api.github.com/users/sundowndev/events{/privacy}
[+] received_events_url : https://api.github.com/users/sundowndev/received_events
[+] type : User
[+] site_admin : False
[+] name : Raphaël
[+] company : None
[+] blog : https://crvx.fr/
[+] location : None
[+] email : None
[+] hireable : None
[+] bio : Engineering @snyk
[+] twitter_username : sundowndev
[+] public_repos : 62
[+] public_gists : 3
[+] followers : 1636
[+] following : 136
[+] created_at : 2015-12-29T19:15:26Z
[+] updated_at : 2022-03-07T06:23:56Z
2. Menggunakan Module Pprint
Untuk cara kedua kamu bisa gunakan fungsi bawahan python program dan cara nya bisa di lihat seperti ini :
import argparse, requests, json
from pprint import pprint
parser = argparse.ArgumentParser()
parser.add_argument('-g', '--github', type=str, help='melakukan pencarian dan melihat data akun github')
args = parser.parse_args()
if args.github:
username = args.github
url = f'https://api.github.com/users/{username}'
response = requests.get(url)
if response.status_code == 200 and requests.codes.ok:
data = response.json()
pprint(data)
Hasil nya bisa di lihat di bawah ini :
C:\Users\galihap\Documents>main.py -g sundowndev
{'avatar_url': 'https://avatars.githubusercontent.com/u/16480203?v=4',
'bio': 'Engineering @snyk',
'blog': 'https://crvx.fr/',
'company': None,
'created_at': '2015-12-29T19:15:26Z',
'email': None,
'events_url': 'https://api.github.com/users/sundowndev/events{/privacy}',
'followers': 1636,
'followers_url': 'https://api.github.com/users/sundowndev/followers',
'following': 136,
'following_url': 'https://api.github.com/users/sundowndev/following{/other_user}',
'gists_url': 'https://api.github.com/users/sundowndev/gists{/gist_id}',
'gravatar_id': '',
'hireable': None,
'html_url': 'https://github.com/sundowndev',
'id': 16480203,
'location': None,
'login': 'sundowndev',
'name': 'Raphaël',
'node_id': 'MDQ6VXNlcjE2NDgwMjAz',
'organizations_url': 'https://api.github.com/users/sundowndev/orgs',
'public_gists': 3,
'public_repos': 62,
'received_events_url': 'https://api.github.com/users/sundowndev/received_events',
'repos_url': 'https://api.github.com/users/sundowndev/repos',
'site_admin': False,
'starred_url': 'https://api.github.com/users/sundowndev/starred{/owner}{/repo}',
'subscriptions_url': 'https://api.github.com/users/sundowndev/subscriptions',
'twitter_username': 'sundowndev',
'type': 'User',
'updated_at': '2022-03-07T06:23:56Z',
'url': 'https://api.github.com/users/sundowndev'}
3. Menggunakan Cara With Open
Ok cara terakhir kamu bisa gunakan dengan cara menggunakan with open pastikan kamu buat file dulu dengan ekstensi results.json :
import argparse, requests, json
parser = argparse.ArgumentParser()
parser.add_argument('-g', '--github', type=str, help='melakukan pencarian dan melihat data akun github')
args = parser.parse_args()
if args.github:
username = args.github
url = f'https://api.github.com/users/{username}'
response = requests.get(url)
if response.status_code == 200 and requests.codes.ok:
data_json = response.json()
with open('results.json', 'w') as file:
json.dump(data_json, file, indent=4)
f = open("results.json", "r")
print(f.read())
Mudah nya saya memberikan module atau library JSON pada baris kode nomor 1. Lalu hasilnya akan saya simpan pada variabel data_json pada baris kode nomor 12. Nah ketika sudah di simpan pada data_json pada baris kode nomor 13 saya membuat file results.json untuk menulis format data JSON. Ketika data JSON nya sudah berhasil saya terima lalu cetak objek json tersebut dengan menggunakan json_dump pada baris kode nomor 14. Kegunaan dari ini JSON tersebut akan menjadi string pada python dan kode baris nomor 15 di maksudkan saya buka file results.json dan terakhir baris kode nomor 16 saya print pada terminal. Hasil tersebut bisa di lihat di bawah ini :
C:\Users\galihap\Documents>main.py -g sundowndev
{
"login": "sundowndev",
"id": 16480203,
"node_id": "MDQ6VXNlcjE2NDgwMjAz",
"avatar_url": "https://avatars.githubusercontent.com/u/16480203?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/sundowndev",
"html_url": "https://github.com/sundowndev",
"followers_url": "https://api.github.com/users/sundowndev/followers",
"following_url": "https://api.github.com/users/sundowndev/following{/other_user}",
"gists_url": "https://api.github.com/users/sundowndev/gists{/gist_id}",
"starred_url": "https://api.github.com/users/sundowndev/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/sundowndev/subscriptions",
"organizations_url": "https://api.github.com/users/sundowndev/orgs",
"repos_url": "https://api.github.com/users/sundowndev/repos",
"events_url": "https://api.github.com/users/sundowndev/events{/privacy}",
"received_events_url": "https://api.github.com/users/sundowndev/received_events",
"type": "User",
"site_admin": false,
"name": "Rapha\u00ebl",
"company": null,
"blog": "https://crvx.fr/",
"location": null,
"email": null,
"hireable": null,
"bio": "Engineering @snyk",
"twitter_username": "sundowndev",
"public_repos": 62,
"public_gists": 3,
"followers": 1636,
"following": 136,
"created_at": "2015-12-29T19:15:26Z",
"updated_at": "2022-03-07T06:23:56Z"
}
Penutup
Nah itulah cara cetak json cantik pada python sebenarnya masih banyak cara lain namun ketiga cara tersebut yang saya gunakan intinya kamu sebagai seorang programmer ataupun developer menemukan masalah pada program kamu seperti ingin mencetak JSON dengan cantik pastikan keahlian pemecahan masalah kamu pada program ter asah dengan baik. Kamu bisa gunakan cara ketiga saya ini untuk cetak JSON cantik ataupun cara lain karena algoritma orang itu beda beda dalam membuat sebuah program dan harus bisa mengeluarkan hasil apa yang di inginkan. Semoga bermanfaat :D
0 Komentar