Satu perbedaan penting dalam Python 2 adalah bahwa jika Anda menggunakan ensure_ascii=False, dumpakan dengan benar menulis data yang dikodekan UTF-8 ke dalam file (kecuali jika Anda menggunakan string 8-bit dengan karakter diperluas yang bukan UTF-8):
dumpsdi sisi lain, dengan ensure_ascii=Falsedapat menghasilkan stratau unicodehanya tergantung pada jenis apa yang Anda gunakan untuk string:
Serialize obj ke str diformat JSON menggunakan tabel konversi ini. Jika sure_ascii False, hasilnya mungkin berisi karakter non-ASCII dan nilai kembaliannya bisa menjadi unicodecontoh .
(penekanan milikku). Perhatikan bahwa itu mungkin masih menjadi strcontoh juga.
Dengan demikian Anda tidak dapat menggunakan nilai baliknya untuk menyimpan struktur ke dalam file tanpa memeriksa format yang dikembalikan dan kemungkinan diputar unicode.encode.
Hal ini tentu saja bukan perhatian yang valid di Python 3 lagi, karena tidak ada lagi kebingungan 8-bit / Unicode ini.
Adapun loadvs loads, loadmenganggap seluruh file sebagai satu dokumen JSON, jadi Anda tidak dapat menggunakannya untuk membaca beberapa dokumen JSON terbatas baris baru dari satu file.