วิธีแปลง CSV เป็น JSON ใน Python FOSS
ปัญหา
แปลงไฟล์ CSV เป็น JSON ด้วย Aspose.Cells FOSS ใน Python. โหลด CSV ด้วย load_csv_workbook(), อ่านแต่ละแถวโดยใช้ iter_rows() เพื่อสร้างรายการ Python ของพจนานุกรม, จากนั้นทำการแปลงเป็น JSON โดยใช้โมดูลมาตรฐาน json.
ข้อกำหนดเบื้องต้น
เพื่อแปลง CSV เป็น JSON ด้วย Aspose.Cells FOSS ใน Python ให้ตรวจสอบว่าสภาพแวดล้อมของคุณตรงตามข้อกำหนดต่อไปนี้.
- Python 3.7 หรือใหม่กว่า ติดตั้งแล้ว
- ติดตั้ง Aspose.Cells FOSS ผ่าน
pip install aspose-cells-foss>=26.3.1 - นำเข้าไลบรารีโดยใช้
from aspose.cells_foss import load_csv_workbook - คุ้นเคยพื้นฐานกับการจัดการไฟล์ใน Python และโมดูลมาตรฐาน
json
ขั้นตอนการแปลง
ขั้นตอนที่ 1: โหลดไฟล์ CSV
ใช้ฟังก์ชันสะดวก load_csv_workbook() เพื่อโหลดไฟล์ CSV ลงในเวิร์กบุ๊กใหม่ ซึ่งจะเริ่มต้นการแสดงผลข้อมูลสเปรดชีตในหน่วยความจำ.
from aspose.cells_foss import load_csv_workbook
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]ขั้นตอนที่ 2: อ่านหัวข้อและแถว
ใช้ iter_rows(values_only=True) เพื่อดึงแถวทั้งหมดเป็นทูเพิลของค่าของเซลล์. แถวแรกจะถูกพิจารณาเป็นแถวหัว.
all_rows = list(worksheet.cells.iter_rows(values_only=True))
# Read the header row (first row)
headers = [str(v) if v is not None else f"col{i}" for i, v in enumerate(all_rows[0])]ขั้นตอนที่ 3: สร้างรายการของพจนานุกรมและแปลงเป็น JSON
วนซ้ำแถวที่เหลือ, สร้างดิกชันนารีต่อแถวโดยใช้ชื่อหัวเป็นคีย์, แล้วใช้ json.dump() เพื่อเขียนไฟล์ JSON.
import json
rows = [dict(zip(headers, row)) for row in all_rows[1:]]
with open("output.json", "w", encoding="utf-8") as f:
json.dump(rows, f, indent=2, default=str)
print(f"Converted {len(rows)} rows to output.json")ตัวอย่างโค้ด
ตัวอย่างครบวงจรจากต้นจนจบที่รวมขั้นตอนทั้งสาม:
import json
from aspose.cells_foss import load_csv_workbook
# Step 1: Load CSV
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]
# Step 2: Extract all rows; first row is headers
all_rows = list(worksheet.cells.iter_rows(values_only=True))
if not all_rows:
print("No data found in CSV")
else:
headers = [str(v) if v is not None else f"col{i}" for i, v in enumerate(all_rows[0])]
# Step 3: Build list of dicts from remaining rows
rows = [dict(zip(headers, row)) for row in all_rows[1:]]
# Step 4: Write JSON
with open("output.json", "w", encoding="utf-8") as f:
json.dump(rows, f, indent=2, default=str)
print(f"Converted {len(rows)} rows to output.json")รูปแบบที่รองรับ
Aspose.Cells FOSS รองรับการโหลดไฟล์ CSV และการส่งออกเป็น JSON ผ่านวิธีการที่แสดงข้างต้น ไลบรารีนี้ยังรองรับการบันทึกโดยตรงเป็นรูปแบบอื่น ๆ ด้วย.
| รูปแบบ | ส่วนขยาย | หมายเหตุ |
|---|---|---|
| CSV (อินพุต) | .csv | โหลดด้วย load_csv_workbook("file.csv") |
| JSON (เอาต์พุต) | .json | สร้างด้วย Python json.dump() หลังจากวนซ้ำเซลล์ |
| XLSX (อินพุต/เอาต์พุต) | .xlsx | รูปแบบ Excel Open XML มาตรฐาน |
| Markdown (เอาต์พุต) | .md | ใช้ wb.save_as_markdown("file.md") |