Python
JSON di Python adalah format standar yang terinspirasi oleh JavaScript untuk pertukaran data dan transfer data sebagai format teks melalui jaringan. Umumnya, JSON dalam format string atau teks. Ini dapat digunakan oleh API dan database, dan mewakili objek sebagai pasangan nama/nilai. JSON adalah singkatan dari JavaScript Object Notation.
Sintaks Python JSON:
JSON ditulis sebagai pasangan kunci dan nilai.
{ "Key": "Value", "Key": "Value", }
JSON sangat mirip dengan Kamus Python. Python mendukung JSON, dan memiliki pustaka bawaan sebagai JSON.
‘marsekal ' dan 'acar' modul eksternal Python mempertahankan versi JSON Pustaka Python. Bekerja dengan JSON dengan Python untuk melakukan operasi terkait JSON seperti encoding dan decoding, Anda harus mengimpor terlebih dahulu Pustaka JSON dan untuk itu di .py . Anda berkas,
import json
Metode berikut tersedia di modul JSON Python
Metode | Deskripsi |
---|---|
dumps() | mengkodekan ke objek JSON |
buang() | penulisan string yang dikodekan pada file |
memuat() | Decode string JSON |
memuat() | Decode saat file JSON dibaca |
JSON Library of Python melakukan terjemahan objek Python berikut ke objek JSON secara default
Python | JSON |
---|---|
dikte | Objek |
daftar | Array |
unicode | Tali |
angka – int, panjang | angka – int |
mengambang | angka – nyata |
Benar | Benar |
Salah | Salah |
Tidak ada | Nol |
Mengubah data Python ke JSON disebut operasi Encoding. Encoding dilakukan dengan bantuan metode library JSON – dumps()
json.dumps() di Python adalah metode yang mengubah objek kamus Python menjadi format data string JSON. Ini berguna ketika objek diharuskan dalam format string untuk operasi seperti penguraian, pencetakan, dll.
Sekarang mari kita lakukan contoh pengkodean json.dumps pertama kita dengan Python:
import json x = { "name": "Ken", "age": 45, "married": True, "children": ("Alice","Bob"), "pets": ['Dog'], "cars": [ {"model": "Audi A1", "mpg": 15.1}, {"model": "Zeep Compass", "mpg": 18.1} ] } # sorting result in asscending order by keys: sorted_string = json.dumps(x, indent=4, sort_keys=True) print(sorted_string)
Keluaran:
{"person": {"name": "Kenn", "sex": "male", "age": 28}})
Mari kita lihat contoh Python menulis JSON ke file untuk membuat file JSON kamus menggunakan fungsi yang sama dump()
# here we create new data_file.json file with write mode using file i/o operation with open('json_file.json', "w") as file_write: # write json data into file json.dump(person_data, file_write)
Keluaran:
Tidak ada yang ditampilkan… Di sistem Anda, json_file.json dibuat. Anda dapat memeriksa file itu seperti yang ditunjukkan di bawah, tulis JSON ke file contoh Python.
Penguraian string JSON dilakukan dengan bantuan metode bawaan json.loads() &json.load() dari perpustakaan JSON dengan Python. Berikut tabel terjemahan menunjukkan contoh objek JSON ke objek Python yang berguna untuk melakukan decoding dalam Python string JSON.
JSON | Python |
---|---|
Objek | dikte |
Array | daftar |
Tali | unicode |
angka – int | angka – int, panjang |
angka – nyata | mengambang |
Benar | Benar |
Salah | Salah |
Null | Tidak ada |
Mari kita lihat contoh dasar penguraian kode JSON Python dengan bantuan json.loads fungsi,
import json # json library imported # json data string person_data = '{ "person": { "name": "Kenn", "sex": "male", "age": 28}}' # Decoding or converting JSON format in dictionary using loads() dict_obj = json.loads(person_data) print(dict_obj) # check type of dict_obj print("Type of dict_obj", type(dict_obj)) # get human object details print("Person......", dict_obj.get('person'))
Keluaran:
{'person': {'name': 'Kenn', 'sex': 'male', 'age': 28}} Type of dict_obj <class 'dict'> Person...... {'name': 'John', 'sex': 'male'}
Sekarang, kita akan belajar cara membaca file JSON dengan Python dengan contoh Python parse JSON:
CATATAN: Decoding file JSON adalah operasi terkait File Input/Output (I/O). File JSON harus ada di sistem Anda di lokasi tertentu yang Anda sebutkan di program Anda.
Python membaca file JSON Contoh:
import json #File I/O Open function for read data from JSON File with open('X:/json_file.json') as file_object: # store file data in object data = json.load(file_object) print(data)
Data di sini adalah objek kamus Python seperti yang ditunjukkan pada contoh file JSON baca di atas Python.
Keluaran:
{'person': {'name': 'Kenn', 'sex': 'male', 'age': 28}}
Saat Anda perlu mengurangi ukuran file JSON, Anda dapat menggunakan enkode ringkas dengan Python.
Contoh,
import json # Create a List that contains dictionary lst = ['a', 'b', 'c',{'4': 5, '6': 7}] # separator used for compact representation of JSON. # Use of ',' to identify list items # Use of ':' to identify key and value in dictionary compact_obj = json.dumps(lst, separators=(',', ':')) print(compact_obj)
Keluaran:
'["a", "b", "c", {"4": 5, "6": 7}]' ** Here output of JSON is represented in a single line which is the most compact representation by removing the space character from compact_obj **
Contoh:
import json dic = { 'a': 4, 'b': 5 } ''' To format the code use of indent and 4 shows number of space and use of separator is not necessary but standard way to write code of particular function. ''' formatted_obj = json.dumps(dic, indent=4, separators=(',', ': ')) print(formatted_obj)
Keluaran:
{ "a" : 4, "b" : 5 }
Untuk lebih memahami ini, ubah indentasi menjadi 40 dan amati output-
Memesan kode JSON:
sort_keys atribut dalam argumen fungsi dumps Python akan mengurutkan kunci dalam JSON dalam urutan menaik. Argumen sort_keys adalah atribut Boolean. Jika benar, penyortiran diperbolehkan, sebaliknya tidak. Mari kita pahami dengan contoh pengurutan string Python ke JSON.
Contoh,
import json x = { "name": "Ken", "age": 45, "married": True, "children": ("Alice", "Bob"), "pets": [ 'Dog' ], "cars": [ {"model": "Audi A1", "mpg": 15.1}, {"model": "Zeep Compass", "mpg": 18.1} ], } # sorting result in asscending order by keys: sorted_string = json.dumps(x, indent=4, sort_keys=True) print(sorted_string)
Keluaran:
{ "age": 45, "cars": [ { "model": "Audi A1", "mpg": 15.1 }, { "model": "Zeep Compass", "mpg": 18.1 } ], "children": [ "Alice", "Bob" ], "married": true, "name": "Ken", "pets": [ "Dog" ] }
Seperti yang Anda amati usia kunci, mobil, anak-anak, dll diatur dalam urutan menaik.
Objek Kompleks memiliki dua bagian berbeda yaitu
Contoh:3 +2i
Sebelum melakukan pengkodean objek kompleks, Anda perlu memeriksa variabel kompleks atau tidak. Anda perlu membuat fungsi yang memeriksa nilai yang disimpan dalam variabel dengan menggunakan metode instance.
Mari kita buat fungsi khusus untuk objek pemeriksaan yang kompleks atau memenuhi syarat untuk penyandian.
import json # create function to check instance is complex or not def complex_encode(object): # check using isinstance method if isinstance(object, complex): return [object.real, object.imag] # raised error using exception handling if object is not complex raise TypeError(repr(object) + " is not JSON serialized") # perform json encoding by passing parameter complex_obj = json.dumps(4 + 5j, default=complex_encode) print(complex_obj)
Keluaran:
'[4.0, 5.0]'
Untuk mendekode objek kompleks di JSON, gunakan parameter object_hook yang memeriksa string JSON berisi objek kompleks atau tidak. Mari kita pahami dengan string ke JSON Python Contoh,
import json # function check JSON string contains complex object def is_complex(objct): if '__complex__' in objct: return complex(objct['real'], objct['img']) return objct # use of json loads method with object_hook for check object complex or not complex_object =json.loads('{"__complex__": true, "real": 4, "img": 5}', object_hook = is_complex) #here we not passed complex object so it's convert into dictionary simple_object =json.loads('{"real": 6, "img": 7}', object_hook = is_complex) print("Complex_object......",complex_object) print("Without_complex_object......",simple_object)
Keluaran:
Complex_object...... (4+5j) Without_complex_object...... {'real': 6, 'img': 7}
Kelas JSONEncoder digunakan untuk serialisasi objek Python apa pun saat melakukan pengkodean. Ini berisi tiga metode pengkodean yang berbeda yaitu
Dengan bantuan metode encode() kelas JSONEncoder, kita juga dapat mengkodekan objek Python apa pun seperti yang ditunjukkan pada contoh encoder JSON Python di bawah ini.
# import JSONEncoder class from json from json.encoder import JSONEncoder colour_dict = { "colour": ["red", "yellow", "green" ]} # directly called encode method of JSON JSONEncoder().encode(colour_dict)
Keluaran:
'{"colour": ["red", "yellow", "green"]}'
Kelas JSONDecoder digunakan untuk deserialisasi objek Python apa pun saat melakukan decoding. Ini berisi tiga metode decoding yang berbeda yaitu
Dengan bantuan metode decode() kelas JSONDecoder, kita juga dapat mendekode string JSON seperti yang ditunjukkan pada contoh dekoder Python JSON di bawah ini.
import json # import JSONDecoder class from json from json.decoder import JSONDecoder colour_string = '{ "colour": ["red", "yellow"]}' # directly called decode method of JSON JSONDecoder().decode(colour_string)
Keluaran:
{'colour': ['red', 'yellow']}
Kami akan mengambil data CityBike NYC (Sistem Berbagi Sepeda) dari URL yang ditentukan (https://feeds.citibikenyc.com/stations/stations.json) dan mengonversinya ke dalam format kamus.
Python memuat JSON dari file Contoh:
CATATAN:- Pastikan perpustakaan permintaan sudah diinstal di Python Anda, Jika tidak maka buka Terminal atau CMD dan ketik
import json import requests # get JSON string data from CityBike NYC using web requests library json_response= requests.get("https://feeds.citibikenyc.com/stations/stations.json") # check type of json_response object print(type(json_response.text)) # load data in loads() function of json library bike_dict = json.loads(json_response.text) #check type of news_dict print(type(bike_dict)) # now get stationBeanList key data from dict print(bike_dict['stationBeanList'][0])
Keluaran:
<class 'str'> <class 'dict'> { 'id': 487, 'stationName': 'E 20 St & FDR Drive', 'availableDocks': 24, 'totalDocks': 34, 'latitude': 40.73314259, 'longitude': -73.97573881, 'statusValue': 'In Service', 'statusKey': 1, 'availableBikes': 9, 'stAddress1': 'E 20 St & FDR Drive', 'stAddress2': '', 'city': '', 'postalCode': '', 'location': '', 'altitude': '', 'testStation': False, 'lastCommunicationTime': '2018-12-11 10:59:09 PM', 'landMark': '' }
Python memuat JSON dari file Contoh:
import json #File I/O Open function for read data from JSON File data = {} #Define Empty Dictionary Object try: with open('json_file_name.json') as file_object: data = json.load(file_object) except ValueError: print("Bad JSON file format, Change JSON File")
Format Pertukaran Data JSON (RFC – Permintaan Komentar) tidak mengizinkan Nilai Tak Terbatas atau Nan tetapi tidak ada batasan dalam Pustaka Python- JSON untuk melakukan operasi terkait Nilai Tak Terbatas dan Nilai Nan. Jika JSON mendapatkan tipe data INFINITE dan Nan daripada mengubahnya menjadi literal.
Contoh,
import json # pass float Infinite value infinite_json = json.dumps(float('inf')) # check infinite json type print(infinite_json) print(type(infinite_json)) json_nan = json.dumps(float('nan')) print(json_nan) # pass json_string as Infinity infinite = json.loads('Infinity') print(infinite) # check type of Infinity print(type(infinite))
Keluaran:
Infinity <class 'str'> NaN inf <class 'float'>
RFC menentukan nama kunci harus unik dalam objek JSON, tetapi itu tidak wajib. Pustaka Python JSON tidak memunculkan pengecualian objek berulang di JSON. Ini mengabaikan semua pasangan nilai kunci yang berulang dan hanya mempertimbangkan pasangan nilai kunci terakhir di antara mereka.
import json repeat_pair = '{"a": 1, "a": 2, "a": 3}' json.loads(repeat_pair)
Keluaran:
{'a': 3}
json.tool menyediakan antarmuka baris perintah untuk memvalidasi sintaksis cetak cantik JSON. Mari kita lihat contoh CLI
$ echo '{"name" : "Kings Authur" }' | python3 -m json.tool
Keluaran:
{ "name": " Kings Authur " }
Fungsi Python JSON | Deskripsi |
---|---|
json.dumps(person_data) | Buat Objek JSON |
json.dump(person_data, file_write) | Buat File JSON menggunakan File I/O Python |
compact_obj =json.dumps(data, separators=(‘,’,’:’)) | Ringkaskan Objek JSON dengan menghapus karakter spasi dari Objek JSON menggunakan pemisah |
formatted_obj =json.dumps(dic, indent=4, separators=(‘,’, ‘:‘)) | Memformat kode JSON menggunakan Indent |
sorted_string =json.dumps(x, indent=4, sort_keys=True) | Mengurutkan kunci objek JSON menurut urutan abjad |
complex_obj =json.dumps(4 + 5j, default=complex_encode) | Encoding Objek Kompleks Python di JSON |
JSONEncoder().encode(colour_dict) | Penggunaan Kelas JSONEncoder untuk Serialisasi |
json.loads(data_string) | Mendekode String JSON dalam kamus Python menggunakan fungsi json.loads() |
json.loads(‘{“__complex__”:true, “real”:4, “img”:5}’, object_hook =is_complex) | Decoding objek JSON kompleks ke Python |
JSONDecoder().decode(string_warna) | Penggunaan Decoding JSON ke Python dengan Deserialisasi |
Python
Apa itu readline Python? Python readline() adalah metode file yang membantu membaca satu baris lengkap dari file yang diberikan. Ini memiliki baris baru tambahan (“\n”) di akhir string yang dikembalikan. Anda juga dapat menggunakan parameter ukuran untuk mendapatkan panjang garis tertentu. Paramet
Apa itu file CSV? File CSV adalah jenis sederhana dari file teks biasa yang menggunakan struktur tertentu untuk mengatur data tabular. Format standar file CSV ditentukan oleh data baris dan kolom di mana baris baru mengakhiri setiap baris untuk memulai baris berikutnya, dan setiap kolom dipisahkan
Apa itu XML? XML adalah singkatan dari eXtensible Markup Language. Ini dirancang untuk menyimpan dan mengangkut data dalam jumlah kecil hingga sedang dan digunakan secara luas untuk berbagi informasi terstruktur. Python memungkinkan Anda untuk mengurai dan memodifikasi dokumen XML. Untuk mengurai
Artikel ini menjelaskan cara mengakses dan menulis data proses sederhana dengan Python dengan AXC F 3152 menggunakan gRPC. (https://www.plcnext.help/te/Service_Components/gRPC_Introduction.htm) Prasyarat Pertama kita harus menyiapkan file yang dibutuhkan, di luar PLC, misalnya pada mesin Windows.