تحويل CSV إلى YAML

YAML هو ما تتكون منه ملفات التكوين الحديثة: بيانات Kubernetes، وسير عمل GitHub Actions، وDocker Compose، وكتيبات Ansible، وتركيبات Rails. يقرأ هذا المحول ملف CSV وينتج تسلسل YAML حيث يصبح كل صف تعيينًا مرتبطًا بصف الرأس. يستخدم الإخراج مسافة بادئة ذات مسافتين وعتبة سطرية مكونة من 4 مستويات، والتي تتوافق مع نمط معظم المحررات وأدوات الفحص (linters).

كيف يصبح CSV YAML

  1. 1

    الصق ملف CSV

    يتم تحميل العينة مسبقًا حتى تتمكن من رؤية شكل الإخراج الافتراضي؛ استبدلها ببياناتك.

  2. 2

    اختر المحدد

    فاصلة بشكل افتراضي. أدخل `\t` للإدخال المفصول بعلامات جدولة أو أي حرف فردي آخر يستخدمه ملفك.

  3. 3

    تصبح الرؤوس مفاتيح

    يتم التعامل مع الصف 1 كرأس. تصبح صفوف البيانات تعيينات ضمن تلك المفاتيح بنفس ترتيب الأعمدة المصدر.

  4. 4

    YAML ملقاة بأمان

    يتم تقديم المخرجات بواسطة مكون Symfony YAML، الذي يقتبس القيم في حالة حدوث غموض مع القيم المنطقية أو الأرقام أو التواريخ.

مراوغات YAML التي يجب أن تعرفها قبل لصق الإخراج

من المعروف أن YAML متسامح على السطح ومليء بالفخاخ تحته. تتعامل أداة الإخراج (dumper) مع معظمها، ولكن لا يزال يتعين على بياناتك أن تنجو من التحويل ذهابًا وإيابًا.

مشكلة النرويج والأصدقاء

يتعامل YAML 1.1 مع no، yes، on، off، true، false، y، n (ونماذجها الكبيرة) كقيم منطقية. وهذا يعني أن عمود رمز البلد الذي يحتوي على NO للنرويج يمكن أن يتحول بصمت إلى false.

خلية المصدر منبعث كـ (غير مقتبس) يُقصد به عادةً
NO false الدولة النرويج
ON true ولاية أونتاريو
123 123 إما رقم أو معرف
0100 64 (ثماني!) رمز الصفر البادئ

تقتبس أداة الإخراج القيم الخطرة تلقائيًا، ولكن إذا كنت ترى أنواعًا خاطئة في مخرجاتك، فاستخدم محللات YAML 1.2 في الأنظمة اللاحقة أو اقتبس القيم التي تهمك بشكل صريح.

خيارات التنسيق

  • مسافة بادئة ذات مسافتين. معيار لمعظم المحررين؛ linters مثل yamllint الافتراضي لهذا.
  • العتبة المضمنة 4. تتم طباعة الهياكل المتداخلة بعمق على سطر واحد أسفل المستوى الرابع، وفوقه تتوسع إلى أسطر متعددة. اضبطها في الأنظمة اللاحقة إذا كنت تريد كتلًا أكثر صرامة.
  • لا يتم إنشاء نقاط الارتساء والأسماء المستعارة. كل صف عبارة عن تعيين جديد حتى لو تكررت الصفوف.

مثال الإخراج

- name: Alice
  age: 30
- name: Bob
  age: 25

متى يتم اختيار YAML بدلاً من JSON

  • التكوينات التي تم تحريرها يدويًا، حيث تكون التعليقات والسلاسل متعددة الأسطر مهمة.
  • بيانات Kubernetes، وخطوط أنابيب CI، وكتيبات Ansible.
  • أي سياق يقرأ فيه الأشخاص الملف بقدر ما تقرأه الأجهزة.

بخلاف ذلك، يكون JSON أكثر صرامة وأسرع في التحليل - يفضل استخدامه للتنسيقات السلكية والحمولات النافعة المولدة.

الأسئلة الشائعة

يفسر YAML 1.1 NO باعتباره منطقيًا. يقتبس المحول قيمًا محفوفة بالمخاطر، ولكن إذا كان المحلل اللغوي لا يزال يفرض الأنواع، فاقتبس الخلايا التي بها مشكلات قبل لصق المخرجات أو قم بالتبديل إلى محلل YAML 1.2 الذي يتعامل مع تلك الخلايا كسلاسل عادية.

ليس مع هذا المحول، يصبح كل صف تعيينًا مسطحًا. بالنسبة إلى YAML المتداخل، أنشئ برنامجًا نصيًا صغيرًا حول مكتبة YAML، أو قم بالتحويل إلى JSON أولاً وشكل ذلك في محرر JSON.

يتم تحليل الخلايا باستخدام str_getcsv باستخدام المحدد الذي اخترته. تحافظ القيم المقتبسة على المحددات وعلامات الاقتباس المضمنة بنفس الطريقة التي تتبعها في محلل CSV الحقيقي.

نعم. يتم إرسال ملف CSV الذي تلصقه إلى خادمنا، لأن التحليل والتسلسل إلى YAML يتمان هناك. يُستخدم فقط لإنشاء نتيجة YAML ولا يتم تخزينه.

أدوات ذات صلة

الأداة متاحة بلغات أخرى