Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menukar Perwakilan Rentetan Kamus kepada Kamus Python dengan Selamat?
Menukar Perwakilan Rentetan Kamus kepada Kamus
Selalunya, kita mungkin perlu menukar perwakilan rentetan kamus, seperti yang diberikan di bawah, ke dalam kamus sebenar.
s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
Adalah lebih baik untuk mengelak daripada menggunakan eval untuk penukaran sedemikian kerana keselamatan kebimbangan. Berikut ialah beberapa alternatif yang lebih selamat:
Menggunakan ast.literal_eval:
Modul ast Python menyediakan fungsi yang mudah dipanggil literal_eval yang direka khusus untuk menilai rentetan ekspresi dengan selamat.
import ast dict_from_string = ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
Kaedah ini hanya membenarkan penilaian literal dan ungkapan mudah, menjadikan ia lebih selamat daripada eval.
Kelebihan ast.literal_eval:
Tidak seperti eval, ast.literal_eval mengehadkan penilaian kepada set literal Python yang terhad, yang menghalang potensi risiko keselamatan yang dikaitkan dengan pelaksanaan kod arbitrari.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Perwakilan Rentetan Kamus kepada Kamus Python dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!