Anda berada di sini karena ketika Anda mendekode data JSON dan mengharapkan data JSON menjadi jenis Show
Bacaan lebih lanjut
Dengan kata lain, Anda ingin mengurai file JSON dan mengonversi data JSON menjadi kamus sehingga Anda dapat mengakses JSON menggunakan pasangan nilai kuncinya, tetapi saat Anda mengurai data JSON, Anda menerima daftar, bukan kamus. Pada artikel ini, kita akan melihat cara mengakses data dalam situasi seperti itu. Sebelumnya, pahami terlebih dahulu mengapa hal ini terjadi
Kita akan melihat kedua contoh tersebut. tapi pertama-tama, pahami skenario dengan sebuah contoh
Keluaran serialize into JSON and write into a file Done Writing into a file Started Reading JSON data from file Type of deserialized data: <class 'list'>_ Seperti yang Anda lihat, kami menerima daftar dari json. load() karena kami hanya membuat serial objek jenis daftar. Sekarang kita dapat mengakses data dengan mengulanginya seperti ini. cukup tambahkan baris berikut di akhir contoh di atas dan jalankan
Keluaran Data is 125 23 85 445 Deserialisasi array JSON yang berisi kamus di dalamnyaSekarang, Mari kita lihat skenario kedua. Mari kita asumsikan seseorang membuat serial daftar Python (yang berisi kamus) ke dalam JSON. saya. e. , Daftar berisi kamus di dalamnya Dalam contoh ini, saya membuat serial MarksList berikut ke dalam JSON _Anda dapat mengakses kamus sebenarnya secara langsung dengan mengakses item ke-0 dari daftar. Mari kita lihat contohnya sekarang Pada artikel ini, kita akan mempelajari cara mengonversi data JSON menjadi objek kustom Python. saya. e. , Parsing dan ubah JSON menjadi Kelas Python. Misalnya, Anda menerima data JSON karyawan dari API atau Anda membaca JSON dari file dan ingin mengonversinya menjadi tipe Karyawan khusus Anda tahu cara menyandikan objek Python ke dalam JSON. Saat Anda memuat data JSON dari file atau String menggunakan json. beban() dan json. metode beban() , ia mengembalikan After Converting JSON Data into Custom Python Object 1 Emma2 Jika kami memuat data JSON langsung ke tipe kustom kami, kami dapat memanipulasi dan menggunakannya dengan lebih mudah. Ada berbagai cara untuk mencapai ini. Anda dapat memilih cara yang menurut Anda lebih berguna untuk masalah Anda. Mari kita lihat cara membatalkan serialisasi string JSON ke objek Python khusus Bacaan lebih lanjut
Menggunakan namedtuple dan object_hook untuk Mengonversi data JSON Menjadi Objek Python KustomKita dapat menggunakan parameter After Converting JSON Data into Custom Python Object 1 Emma_3 dari metode After Converting JSON Data into Custom Python Object 1 Emma4 dan After Converting JSON Data into Custom Python Object 1 Emma5. After Converting JSON Data into Custom Python Object 1 Emma_3 adalah fungsi opsional yang akan dipanggil dengan hasil dari dekode literal objek apa pun (dikt). Jadi ketika kita mengeksekusi After Converting JSON Data into Custom Python Object 1 Emma4, nilai pengembalian ________5______3 akan digunakan sebagai pengganti After Converting JSON Data into Custom Python Object 1 Emma2. Dengan menggunakan fitur ini, kita dapat mengimplementasikan decoder khusus Untuk mengonversi JSON menjadi tipe Python khusus, kita perlu mengikuti yang berikut ini Seperti yang kita ketahui metode After Converting JSON Data into Custom Python Object 1 Emma5 dan After Converting JSON Data into Custom Python Object 1 Emma4 mengubah JSON menjadi objek After Converting JSON Data into Custom Python Object 1 Emma2 jadi kita perlu membuat fungsi khusus tempat kita dapat mengubah After Converting JSON Data into Custom Python Object 1 Emma2 menjadi tipe Python khusus. dan teruskan fungsi yang baru dibuat ini ke parameter After Converting JSON Data into Custom Python Object 1 Emma_3 dari metode 5. jadi kita bisa mendapatkan tipe khusus pada saat mendekode JSONNamedtuple adalah class, di bawah modul collections. Seperti objek tipe kamus, ini berisi kunci dan dipetakan ke beberapa nilai. Dalam hal ini, kita dapat mengakses elemen menggunakan kunci dan indeks Mari kita lihat contoh sederhananya dulu baru kita bisa beralih ke contoh praktisnya. Dalam contoh ini, kami mengonversi data JSON Siswa menjadi jenis Kelas Siswa khusus
Keluaran After Converting JSON Data into Custom Python Object 1 Emma Seperti yang Anda lihat, kami mengonversi data JSON yang ada dalam format JSON String menjadi objek kustom Python Siswa. Sekarang, kita dapat mengakses anggotanya menggunakan titik (. ) operator Sekarang, mari kita lihat skenario realtime di mana bekerja dengan Objek Python yang kompleks. Dan kita perlu mengonversi objek Python khusus menjadi JSON. Juga, kami ingin membuat objek Python khusus dari JSON Dalam contoh ini, kami menggunakan dua kelas 6 dan 7. Kelas 7 adalah anggota kelas 6
Mari kita lihat contohnya sekarang
Keluaran Student JSON { "rollNumber": 1, "name": "Emma", "marks": { "english": 82, "geometry": 74 } } After Converting JSON Data into Custom Python Object 1 Emma 82 74 Menggunakan tipe. SimpleNamespace dan object_hook untuk mengonversi data JSON Menjadi Objek Python KustomKita dapat menggunakan Student JSON { "rollNumber": 1, "name": "Emma", "marks": { "english": 82, "geometry": 74 } } After Converting JSON Data into Custom Python Object 1 Emma 82 74_0 sebagai wadah untuk objek JSON. Ini menawarkan keuntungan berikut dibandingkan solusi namedtuple. –
Dalam contoh ini, kita akan menggunakan Student JSON { "rollNumber": 1, "name": "Emma", "marks": { "english": 82, "geometry": 74 } } After Converting JSON Data into Custom Python Object 1 Emma 82 74_0 dan After Converting JSON Data into Custom Python Object 1 Emma3 untuk mengonversi data JSON menjadi Objek Python kustom
Keluaran Student JSON { "rollNumber": 1, "name": "Emma", "marks": { "english": 82, "geometry": 74 } } After Converting JSON Data into Custom Python Object using SimpleNamespace 1 Emma 82 74 Menggunakan decoding objek dari kelas JSONDecoder untuk mengonversi data JSON Menjadi Objek Python KustomKita dapat menggunakan kelas modul json Student JSON { "rollNumber": 1, "name": "Emma", "marks": { "english": 82, "geometry": 74 } } After Converting JSON Data into Custom Python Object 1 Emma 82 74_3 untuk mengkhususkan decoding objek JSON, di sini kita dapat mendekode objek JSON menjadi tipe Python kustom Kita perlu membuat fungsi baru di kelas yang akan bertanggung jawab untuk memeriksa tipe objek dalam string JSON, setelah mendapatkan tipe yang benar dalam data JSON kita dapat membuat Objek kita Mari kita lihat contohnya
Keluaran Type of decoded object from JSON Data <class '__main__.Student'> Student Details 1 Ault kelly 78 Gunakan modul jsonpickle untuk mengonversi data JSON menjadi Objek Python khususjsonpickle adalah pustaka Python yang dirancang untuk bekerja dengan Objek Python yang kompleks. Anda dapat menggunakan jsonpickle untuk serialisasi dan deserialisasi kompleks Python dan Data JSON. Anda dapat merujuk ke Dokumentasi Jsonpickle untuk detail lebih lanjut Modul JSON bawaan Python hanya dapat menangani primitif Python. Untuk objek Python khusus apa pun, kita perlu menulis JSONEncoder dan Decoder kita sendiri Menggunakan jsonpickle kita akan melakukan hal berikut. –
Sekarang, mari kita lihat contoh jsonpickle untuk mengonversi data JSON Menjadi Objek Kustom Python
Keluaran Encode Object into JSON formatted Data using jsonpickle {"marks": {"english": 82, "geometry": 74, "py/object": "__main__.Marks"}, "name": "Emma", "py/object": "__main__.Student", "rollNumber": 1} Decode JSON formatted Data using jsonpickle 1 Emma 82 74 Buat Objek baru, dan berikan kamus hasil sebagai peta untuk mengonversi data JSON menjadi Objek Python khususSeperti yang kita ketahui After Converting JSON Data into Custom Python Object 1 Emma4 dan After Converting JSON Data into Custom Python Object 1 Emma5 metode mengembalikan objek After Converting JSON Data into Custom Python Object 1 Emma2. kita dapat membuat objek kustom baru dengan meneruskan objek After Converting JSON Data into Custom Python Object 1 Emma2 sebagai parameter ke konstruktor Student Object. saya. e. , kita dapat memetakan objek After Converting JSON Data into Custom Python Object 1 Emma_2 ke objek kustom After Converting JSON Data into Custom Python Object 1 Emma0 Keluaran After Converting JSON Data into Custom Python Object 1 Emma1 Jadi apa yang Anda pikirkan?Saya ingin mendengar dari Anda. Apa pendapat Anda tentang artikel ini? . Apa pun itu, beri tahu saya dengan meninggalkan komentar di bawah Juga, coba selesaikan Latihan Python JSON untuk memiliki pemahaman yang lebih baik tentang Bekerja dengan Data JSON dengan Python Bagaimana cara mengonversi respons JSON ke kamus?Konversikan JSON ke kamus . Impor modul json dalam program Buka contoh file JSON yang telah kita buat di atas Ubah data file menjadi kamus menggunakan json. . Periksa jenis nilai yang dikembalikan oleh json. . Cetak kuncinya. pasangan nilai di dalam kamus Python menggunakan for loop Bagaimana cara mengonversi file JSON ke dict Python?String JSON ke Kamus Python
. json. load(data_JSON) membuat kamus baru dengan pasangan kunci-nilai dari string JSON dan mengembalikan kamus baru ini. use the loads() function of the json module, passing the string as the argument. json. loads(data_JSON) creates a new dictionary with the key-value pairs of the JSON string and it returns this new dictionary.
Bagaimana Anda mengubah objek respons ke kamus dengan Python?Ini bekerja dengan memuat objek tanggapan menggunakan. get() fungsi. Kami kemudian menerapkan. json() ke objek respons untuk mengubahnya menjadi kamus Python .
Bagaimana cara mengonversi respons JSON ke daftar dengan Python?Untuk mengonversi String JSON ke Daftar Python, gunakan json. memuat() fungsi . fungsi beban () mengambil string JSON Array sebagai argumen dan mengembalikan Daftar Python. |