محولات البيانات · 50دقيقة قراءة
JSON إلى CSV: تسوية البيانات المتداخلة دون فقدان المعنى
لا يزال ملف CSV هو التنسيق الذي يتم فتحه في أي شيء: جداول البيانات، وأدوات ذكاء الأعمال، والأنظمة المالية، والكمبيوتر المحمول الخاص بالمراجع. إن تحويل JSON إلى CSV هو في الغالب سؤال حول ما يجب فعله بالأجزاء المتداخلة، لأن الجدول يحتوي على صف واحد لكل سجل وأعمدة ثابتة مسبقًا، في حين أن JSON يتداخل بكل سرور بالعمق الذي يريده.
تم التحديث
مشكلة العمود
هناك قاعدتان تجعل تحويل JSON إلى CSV قابلاً للتنبؤ به. أولاً، الأعمدة هي اتحاد جميع المفاتيح في جميع السجلات - المفتاح الذي يظهر في كائن واحد فقط يظل له عمود، فارغًا في مكان آخر. ثانيًا، يجب أن يصدر كل صف قيمًا بنفس الترتيب. يؤدي الحصول على أي خطأ إلى إنشاء ملف يتم فتحه بشكل جيد ويتم محاذاته بصمت من الصف الأول حيث كان المفتاح غائبًا.
تسطيح الكائنات المتداخلة
التقنية التقليدية هي التدوين النقطي:`address`تحتوي على`city`و`postcode`يصبح`address.city`و`address.postcode`. يؤدي ذلك إلى إبقاء كل قيمة مرئية وقابلة للاستعلام عنها في جدول البيانات، على حساب الرؤوس الأطول. يمكن أن تنتج الهياكل المتداخلة أسماء غير عملية، لذا قم بتسوية مستوى واحد حيث يمكنك التحكم في البيانات واترك الأداة تتسطح بالكامل عند الاستكشاف.
{"id": 7, "customer": {"name": "Ada", "plan": "pro"}}
→ id,customer.name,customer.plan
7,Ada,pro
المصفوفات: الجزء الذي يتسطح بشكل سيئ
يمكن ضم مجموعة من الكميات القياسية في خلية واحدة باستخدام فاصل، وهو أمر جيد بالنسبة للعلامات ومقبول للقوائم القصيرة. مجموعة من الكائنات - ترتيب عناصر السطر، على سبيل المثال - لا تنتمي إلى خلية واحدة: قم بضمها، ولا يمكنك جمع الكميات؛ فهرسة فيه`items.0.sku`,`items.1.sku`، وتعتمد الأعمدة على عدد العناصر الموجودة في كل طلب.عندما تصل إلى هذه الحالة، تريد البيانات ملفين CSV، واحد لكل جدول، مرتبطين بمفتاح.
إذا كانت الخلية تحتوي على فاصلة أو اقتباس أو سطر جديد، فيجب اقتباسها ومضاعفة علامات الاقتباس الداخلية. تعالج المخرجات التي تم إنشاؤها هذا الأمر، لكن ملف CSV الذي تم تحريره يدويًا لا يفعل ذلك عادةً، ولهذا السبب تفشل عمليات الاستيراد بشكل متقطع في الصفوف التي تحتوي على عناوين.
جعل الملف يتصرف في Excel
يفترض برنامج Excel ترميز النظام ما لم يتم إخباره بخلاف ذلك، لذلك يمكن أن تتلف الأحرف المميزة. يؤدي إصدار UTF-8 مع علامة ترتيب البايت إلى تجنب ذلك؛ وبدون ذلك، فإن نفس الملف الذي يبدو مثاليًا في Numbers أو Sheets يعرض mojibake في Excel. المعرفات الرقمية الطويلة - أرقام البطاقات، ووحدات SKU الكبيرة - تستحق أيضًا الاقتباس حتى لا يقوم Excel بتحويلها إلى تدوين علمي.
عندما يكون CSV هو الإخراج الخاطئ
إذا كان المستهلك عبارة عن برنامج، فإن ملف CSV يتخلص من معلومات النوع ويتداخل دون أي فائدة - ومن الأفضل تحميل خطوط JSON أو تحميل قاعدة البيانات. CSV مخصص للبشر الذين لديهم جداول بيانات: التقارير والصادرات والمصالحة. واختياره عمدا، وليس عن طريق العادة، هو نصف العمل. يعمل محول YamlBox JSON إلى CSV بالكامل في المتصفح، لذا فإن عملية التصدير التي تحتوي على صفوف العملاء لا تترك جهازك أبدًا.
JSON إلى CSV — الأسئلة المتداولة
كيف يتم التعامل مع الكائنات المتداخلة عند تحويل JSON إلى CSV؟
ويتم تسويتها باستخدام علامة نقطية بشكل افتراضي — يصبح `customer.name` عمودًا خاصًا به. يمكنك الاحتفاظ بالقيم مجمعة بدلاً من ذلك، ولكن الأعمدة المسطحة هي التي تجعل الملف قابلاً للتصفية والمحور في جدول البيانات.
لماذا تبدو الأحرف المحركة خاطئة في Excel بعد التحويل؟
يقرأ Excel الملف باستخدام ترميز النظام المحلي ما لم تنص علامة ترتيب البايت على خلاف ذلك. يؤدي تصدير UTF-8 باستخدام BOM إلى الحفاظ على الأسماء سليمة؛ وبدون ذلك، يتم عرض البيانات نفسها بشكل صحيح في جداول بيانات Google وبشكل غير صحيح في Excel.
هل يمكنني تحويل مجموعة من الكائنات إلى CSV؟
تأتي الأعمدة من اتحاد المفاتيح عبر جميع السجلات، لذا فإن مجموعة من الكائنات ذات الأشكال المختلطة لا تزال تنتج جدولًا صالحًا يحتوي على فراغات حيث كان المفتاح مفقودًا. المصفوفات الموجودة داخل تلك الكائنات هي الحالة التي تحتاج إلى التقسيم إلى ملف ثانٍ.
الأدوات المذكورة في هذه التدوينة
المزيد من المقالات للقراءة
50دقيقة قراءة
CSV إلى JSON: من جدول بيانات إلى بيانات منظمة
قم بتحويل CSV إلى JSON في المتصفح - شرح صفوف الرؤوس والمحددات وقواعد الاقتباس ومعالجة النوع، مع عمليات تصدير جداول البيانات التي تعطل المحلل اللغوي.
60دقيقة قراءة
Excel إلى JSON: تحويل المصنفات إلى بيانات منظمة
قم بتحويل Excel إلى JSON في المتصفح من مصنفات XLSX - تم شرح الرؤوس وتسلسلات التاريخ والصيغ والأوراق المتعددة، دون تحميل أي شيء.
50دقيقة قراءة
Markdown الجداول: أنشئها بدلاً من عد الأنابيب
أنشئ جداول تخفيض بنكهة GitHub من الصفوف أو جداول البيانات - المحاذاة، والهروب من الأنابيب، وعندما يكون الجدول هو الاختيار الخاطئ لملف README الخاص بك.