บางครั้งเราอาจได้รับข้อมูลที่มีสตริง แต่โครงสร้างของข้อมูลภายในสตรีมเป็นรายการ Python ในบทความนี้ เราจะแปลง string enclosed list เป็น Python list จริง ๆ ซึ่งสามารถนำมาใช้เพิ่มเติมในการจัดการข้อมูลได้
มีการประเมิน
เราทราบดีว่าฟังก์ชัน eval จะให้ผลลัพธ์ที่แท้จริงแก่เราซึ่งเป็นพารามิเตอร์ ดังนั้นเราจึงระบุสตริงที่กำหนดให้กับฟังก์ชัน eval และรับรายการ Python กลับคืนมา
ตัวอย่าง
stringA ="['Mon', 2,'Tue', 4, 'Wed',3]"# Given stringprint("Given string :\n",stringA)# พิมพ์ checkprint(type(stringA))# ใช้ evalres =eval(stringA)# Resultprint("รายการที่ถูกแปลง:\n",res)# พิมพ์ checkprint(type(res))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
สตริงที่กำหนด :['Mon', 2,'Tue', 4, 'Wed',3]รายการที่ถูกแปลง :['Mon', 2, 'Tue', 4, 'Wed', 3]ก่อน>ด้วย ast.literal_eval
ในแนวทางนี้ เราใช้ค่าประมาณและใช้ฟังก์ชัน literal_eval โดยกำหนดให้สตริงเป็นพารามิเตอร์ มันให้รายการ Python กลับมา
ตัวอย่าง
import aststringA ="['Mon', 2,'Tue', 4, 'Wed',3]"# Given stringprint("Given string :\n",stringA)# Type checkprint(type(stringA)) นำเข้า # ใช้ literal_evalres =ast.literal_eval(stringA)# Resultprint("The convert list :\n",res)# Type checkprint(type(res))ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
สตริงที่กำหนด :['Mon', 2,'Tue', 4, 'Wed',3]รายการที่ถูกแปลง :['Mon', 2, 'Tue', 4, 'Wed', 3]ก่อน>ด้วย json.loads
โมดูลการฉีดฟังก์ชันโหลดสามารถทำการแปลงที่คล้ายกันโดยที่สตริงถูกประเมินและสร้างรายการ Python จริง
ตัวอย่าง
import jsonstringA ='["Mon", 2,"Tue", 4, "Wed",3]'# Given stringprint("Given string :\n",stringA)# Type checkprint(type(stringA)) นำเข้า # ใช้ loadsres =json.loads(stringA)# Resultprint("รายการที่ถูกแปลง:\n",res)# พิมพ์ checkprint(type(res))ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
สตริงที่กำหนด :["จันทร์", 2,"อังคาร", 4, "พุธ",3]รายการที่แปลงแล้ว :['จันทร์', 2, 'อังคาร', 4, 'พุธ', 3]ก่อน>