Rumah >pembangunan bahagian belakang >Tutorial Python >Apabila Menukar Kamus kepada JSON, Berhati-hati Dengan Perangkap Biasa Ini

Apabila Menukar Kamus kepada JSON, Berhati-hati Dengan Perangkap Biasa Ini

DDD
DDDasal
2024-10-20 21:02:02844semak imbas

When Converting Dictionaries to JSON, Watch Out For This Common Pitfall

Perangkap dalam Menukar Kamus kepada JSON

Apabila bekerja dengan data JSON, adalah penting untuk memahami perbezaan antara objek JSON dan perwakilan rentetan JSON. Perbezaan ini mempengaruhi cara kami memanipulasi dan mengakses data.

Dalam kod yang disediakan:

import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))

Isu timbul daripada penggunaan json.dumps() diikuti dengan percubaan untuk mengakses a kunci daripada rentetan yang terhasil. json.dumps() menukar kamus kepada perwakilan rentetan objek JSON, bukan objek JSON itu sendiri. Ini bermakna kita tidak boleh mengakses secara langsung sifat objek JSON daripada rentetan.

Untuk menyelesaikan masalah ini, kita perlu menggunakan json.loads() untuk menukar rentetan kembali menjadi objek JSON. Ini membolehkan kami mengakses sifat objek JSON menggunakan notasi titik atau pasangan nilai kunci.

<code class="python">import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)  # Converts to a JSON string
loaded_r = json.loads(r)  # Converts back to a JSON object
print(loaded_r['rating'])  # Accesses the 'rating' property</code>

Dalam kod yang disemak ini, kami mula-mula menukar kamus kepada rentetan menggunakan json.dumps(). Kemudian, kami menggunakan json.loads() untuk menukar rentetan kembali kepada objek JSON. Kini kita boleh mengakses sifat 'rating' menggunakan notasi titik yang biasa.

Atas ialah kandungan terperinci Apabila Menukar Kamus kepada JSON, Berhati-hati Dengan Perangkap Biasa Ini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn