วิธีแปลง CSV เป็น JSON ใน Python FOSS

วิธีแปลง 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")

ดูเพิ่มเติม

 ภาษาไทย