Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีแปลงสตริง CSV เป็นอาร์เรย์ใน Python

วิธีง่ายที่สุดคือใช้เมธอด str.split แยกทุกครั้งที่เจอ ',' และแมปทุกสตริงไปที่เมธอด strip เพื่อลบ whitespace นำหน้า/ท้าย ตัวอย่าง:

>>> s = "1, John Doe, Boston, USA"
>>> print(list(map(str.strip, s.split(','))))
['1', 'John Doe', 'Boston', 'USA']

หากมีสตริงหลายบรรทัดพร้อมหลายบรรทัด CSV ให้แยกด้วย \n แล้วแยกและ strip แต่ละบรรทัด ตัวอย่าง:

>>> s = "1, John Doe, Boston, USA\n2, Jane Doe, Chicago, USA"
>>> print([list(map(str.strip, s_inner.split(','))) for s_inner in s.splitlines()])
[['1', 'John Doe', 'Boston', 'USA'], ['2', 'Jane Doe', 'Chicago', 'USA']]

โมดูล csv ใน Python ยังมีฟังก์ชันช่วย reader สำหรับผลลัพธ์เดียวกัน ตัวอย่าง:

>>> s = "1, John Doe, Boston, USA\n2, Jane Doe, Chicago, USA".splitlines()
>>> import csv
>>> x = csv.reader(s)
>>> list(x)
[['1', ' John Doe', ' Boston', ' USA'], ['2', ' Jane Doe', ' Chicago', ' USA']]