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

วิธีการแปลงสตริง Python csv เป็นอาร์เรย์?


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

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

หากคุณมีสตริงหลายบรรทัดที่มี csv หลายบรรทัด คุณสามารถแยกใน \n จากนั้นแยกและตัดแต่ละบรรทัด ตัวอย่างเช่น

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

โมดูล csv ใน Python ยังมีฟังก์ชันตัวช่วย ตัวอ่านเพื่อให้ได้ผลลัพธ์เดียวกัน ตัวอย่างเช่น

>>> 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']]