tôi không thực sự thích thái độ này trên stackoverflow (và các nơi khác) nói với mọi người mà không cần bất kỳ bối cảnh đó những gì họ đang làm là không an toàn và họ không nên làm điều đó. Có lẽ nó chỉ là một kịch bản throwaway để nhập một số dữ liệu, trong trường hợp đó tại sao không chọn cách nhanh nhất hoặc thuận tiện nhất?
Trong trường hợp này, tuy nhiên, json.loads
không chỉ an toàn hơn mà còn nhanh hơn 4 lần (tùy thuộc vào dữ liệu của bạn).
In [1]: %timeit json.loads(data)
10000 loops, best of 3: 41.6 µs per loop
In [2]: %timeit eval(data)
10000 loops, best of 3: 194 µs per loop
In [3]: %timeit ast.literal_eval(data)
1000 loops, best of 3: 269 µs per loop
Nếu bạn nghĩ về nó có nghĩa là json là ngôn ngữ/định dạng hạn chế hơn python, vì vậy phải nhanh hơn để phân tích cú pháp với trình phân tích cú pháp được tối ưu hóa.
Nếu bạn muốn phân phối từ điển cùng với mã của bạn, bạn có thể laso chỉ cần đặt nó trong một mô-đun Python và import nó. Bằng cách đó, bạn làm rõ ràng đây là mã Python. –