Đôi khi chúng tôi có thể nhận được dữ liệu có chứa các chuỗi nhưng cấu trúc của dữ liệu bên trong luồng là một danh sách Python. Trong bài viết này, chúng tôi sẽ chuyển đổi danh sách kèm theo chuỗi thành một danh sách Python thực có thể được sử dụng thêm trong thao tác dữ liệu.
Với eval
Chúng tôi biết hàm eval sẽ cung cấp cho chúng tôi kết quả thực tế được cung cấp cho nó dưới dạng tham số. Vì vậy, chúng tôi đã cung cấp chuỗi đã cho cho hàm eval và lấy lại danh sách Python.
Ví dụ
stringA ="['Mon', 2, 'Tue', 4, 'Wed', 3]" # Cho stringprint ("Cho string:\ n", stringA) # Type checkprint (type (stringA)) # using evalres =eval (stringA) # Resultprint ("Danh sách được chuyển đổi:\ n", res) # Loại dấu kiểm (type (res))
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Cho chuỗi:['Mon', 2, 'Tue', 4, 'Wed', 3] Danh sách được chuyển đổi:['Mon', 2, 'Tue', 4, 'Wed', 3]Với ast.literal_eval
Trong cách tiếp cận này, chúng tôi lấy ước tính và sử dụng hàm nghĩa đen bằng cách cung cấp cho nó chuỗi làm tham số. Nó trả về danh sách Python.
Ví dụ
import aststringA ="['Mon', 2, 'Tue', 4, 'Wed', 3]" # Cho stringprint ("Cho string:\ n", stringA) # Type checkprint (type (stringA)) # using mean_evalres =ast.literal_eval (stringA) # Resultprint ("Danh sách được chuyển đổi:\ n", res) # Loại dấu kiểm (type (res))Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Cho chuỗi:['Mon', 2, 'Tue', 4, 'Wed', 3] Danh sách được chuyển đổi:['Mon', 2, 'Tue', 4, 'Wed', 3]Với json.loads
Mô-đun tiêm hàm tải có thể thực hiện một chuyển đổi tương tự trong đó chuỗi được đánh giá và danh sách Python thực được tạo.
Ví dụ
import jsonstringA ='["Mon", 2, "Tue", 4, "Wed", 3]' # Given stringprint ("Cho string:\ n", stringA) # Type checkprint (type (stringA)) # using loadres =json.loads (stringA) # Resultprint ("Danh sách được chuyển đổi:\ n", res) # Kiểu kiểm tra (type (res))Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Cho chuỗi:["Mon", 2, "Tue", 4, "Wed", 3] Danh sách được chuyển đổi:['Mon', 2, 'Tue', 4, 'Wed', 3]