Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menukar Perwakilan Rentetan Kamus kepada Kamus Python dengan Selamat?

Bagaimanakah Saya Boleh Menukar Perwakilan Rentetan Kamus kepada Kamus Python dengan Selamat?

DDD
DDDasal
2024-12-29 06:08:11832semak imbas

How Can I Safely Convert a String Representation of a Dictionary to a Python Dictionary?

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!

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