أدوات المطور · محولات بناء الجملة
معيار CSV المفقود: ما الذي يغطيه RFC 4180 وما يتركه مفتوحًا
· خلفية
ملف CSV json تنسيقات البيانات
CSV تسبق أي مواصفات، والمواصفات RFC التي تصفها هي معلوماتية وضيقة عن عمد. يشرح هذا المنشور ما يحدده RFC 4180، وما لا يذكر شيئًا عنه، ولماذا يعد تحويل CSV دائمًا بمثابة تفاوض.
من هو CSV الصحيح؟ — تصديران لنفس الجدول، أحدهما بفواصل منقوطة والآخر بفواصل، وكلاهما يسمى CSV
يمكن لـ ToolAcre أن يصدر مخرجات مفصولة بفاصلة أو فاصلة منقوطة أو بعلامات جدولة من JSON. ولا يقرأ عمليتي تصدير CSV المتنافستين ولا يعلن عن صحة أي منهما. CSV للكتابة فقط هنا، لذا فإن اختيار المحدد هو خيار إخراج صريح بدلاً من خوارزمية اكتشاف.
هذا التمييز يمنع الانزلاق الواقعي المشترك. لم تثبت الواجهة التي يمكنها كتابة الفواصل المنقوطة قدرتها على تحديد الفواصل المنقوطة في ملف غير معروف أو التعامل مع الكسور العشرية المحلية أو تفسير الرؤوس. هذه مسؤوليات مدخلات منفصلة مستبعدة عمدا.
هناك خياران محددان هما خيارات الإخراج، وليس دليلاً على أن هذه اللوحة تقرأ أيًا من الملفين
لا يحتوي المستودع على مصدر لجدول البيانات أو تاريخ قاعدة البيانات المبكر، وبالتالي فإن المقالة لا تخترع تسلسلًا زمنيًا. يبدأ بالكاتب الحالي واختباراته: السجلات والحقول والمحددات وإنهاء CRLF وهروب الاقتباس.
يمكن إضافة السياق التاريخي لاحقًا من خلال المصادر التي تمت مراجعتها. يعد تنفيذ المحول دليلاً على ما يكتبه المنتج اليوم، وليس متى ظهرت الاتفاقية لأول مرة أو سبب اختلاف البائعين.
CSV التاريخ قبل RFC 4180 خارج دليل المستودع
يتم وضع الحقل الذي يحتوي على الفاصل أو علامة الاقتباس المزدوجة أو حرف الإرجاع أو تغذية السطر بين علامات اقتباس مزدوجة، ويتم مضاعفة كل علامة اقتباس مضمنة. يتم أيضًا اقتباس مسافة بيضاء بادئة أو لاحقة لمنع الاقتطاع الشائع لجداول البيانات. تنتهي السجلات بـ CRLF ويتم إنهاء الملف.
تتبع هذه السلوكيات قواعد نمط RFC 4180 التي تم اختبارها في المستودع. تتجنب المقالة المطالبة بالامتثال العالمي لأن الكاتب يدعم أيضًا المحددات البديلة ويضيف معالجة أمنية خارج القواعد النحوية الضيقة.
يستخدم الكاتب RFC 4180 الاقتباس بأسلوب CRLF دون المطالبة بالامتثال الكامل للمعايير
لا تحتفظ الخلايا CSV بأنواع JSON. تصبح كل من السلسلة الفارغة والفارغة خلايا فارغة، بينما تصبح القيم المنطقية والأرقام تمثيلات نصية. يتم تمرير محتوى UTF-8 ويمكن إضافة بادئة اختيارية BOM للمستهلكين الذين يحتاجون إليها.
لم يتم تضمين الترجمة الفورية. يمكن أن يتواجد الفاصلة المنقوطة مع الفواصل العشرية، لكن الكاتب لا يقوم بإعادة تنسيق الأرقام حسب اللغة أو تشفير نوع التاريخ. لا يزال التطبيق المتلقي يقرر كيفية تفسير كل حقل.
تظل حدود التشفير والنوع والإعدادات المحلية واضحة في هذا الكاتب
الاختلافات المطبقة هي الفاصلة والفاصلة المنقوطة وعلامة التبويب، بالإضافة إلى BOM اختياري. نص يشبه الصيغة يبدأ بـ `=`، `+`، `-`، `@`، علامة التبويب أو حرف الإرجاع مسبوق بفاصلة عليا بشكل افتراضي بحيث تتعامل معه جداول البيانات كنص. يمكن للمستخدمين تعطيل هذه الحماية وتلقي تحذير.
لا يوجد `sep=` تلميح أو وضع الهروب من الشرطة المائلة العكسية في هذا الكاتب. إن ذكر تلك الخيارات المشحونة سيكون أمرًا خاطئًا. تستخدم علامات الاقتباس المضمنة المضاعفة، تمامًا كما تؤكد الاختبارات.
تقتصر الاختلافات المرصودة في جدول البيانات على الخيارات ووسائل الحماية المطبقة هنا
يبدأ كل افتراض في هذا المسار من التحليل JSON: أي قيمة توفر الصفوف، وكيف يتم تسوية التداخل في الأعمدة المنقطة، وأي المفاتيح تصبح رؤوسًا. لا يوجد أي افتراض بشأن لهجة CSV الواردة لأن CSV الواردة مرفوضة.
يعكس هذا التصحيح الاتجاه المطلوب للمصنف. يجب أن يختار سير العمل CSV-to-JSON أنواع المحددات والاقتباسات والرؤوس والخلايا في أداة أخرى. يوضح خطأ ToolAcre هذا الرفض بدلاً من التخمين بهدوء.
تنطبق افتراضات التحويل على JSON-to-CSV فقط بسبب رفض إدخال CSV
إصلاح CSV المشوه هو خارج النطاق. تحتاج علامات الاقتباس المقطوعة والترميزات المختلطة والمحددات غير المقصودة إلى منظف CSV أو محلل آخر مزود بتشخيصات واضحة. يتلقى محول بناء الجملة نصًا صارمًا JSON، غير تالف CSV.
قد يظل الإخراج غير مناسب لهدف عندما تقوم شجرة متداخلة بإنشاء أعمدة منقطة غامضة أو تتجاوز 2,000 من الأعمدة. تكشف التحذيرات والأحرف الكبيرة عن حالات الفشل في شكل الجدول قبل التنزيل.
الوجبات الجاهزة: CSV عبارة عن اتفاقية، وليست تنسيقًا - وكيف تقوم لوحة محولات Syntax بتحويل ملف جيد التنسيق إلى JSON يمكنك فحصه
تعامل مع CSV كاتفاقية يجب أن تكون اختياراتها مرئية. ToolAcre يوثق اختيارات المخرجات الخاصة به ويرفض العكس غير المحدد. وهذا أكثر موثوقية من استخدام زر واحد لمهمتين مختلفتين بشكل أساسي.
افحص المحددات وعلامات الاقتباس CRLF وBOM وصيغة الهروب من نظام الاستلام. إذا كان تحليل الإدخال مطلوبًا، فاستخدم أداة تسأل بدلاً من نقل اصطلاحات الكاتب إلى ملف غير معروف.
يفتح فحص القبول العملي الملف الذي تم إنشاؤه في المستهلك المقصود ويفحص أيضًا البايتات الأولية أو النص. وجهة نظر المستهلك تكتشف مشاكل العرض والاستيراد؛ يؤكد العرض الأولي المحدد وعلامات الاقتباس المزدوجة CRLF وBOM الاختياري بدون إعادة تفسير جدول البيانات. اختبار السلاسل المشابهة للصيغة كنص خامل والرقم السالب كرقم. تتحقق هذه الشيكات المقترنة من العقد الفعلي للكاتب دون الادعاء بأن كل برنامج ينفذ اتفاقيات CSV بشكل مماثل.