كيفية تحويل 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") |