"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > JSON को CSV में निर्यात करें: CSV और यूनिकोड पर एक नोट

JSON को CSV में निर्यात करें: CSV और यूनिकोड पर एक नोट

2024-08-01 को प्रकाशित
ब्राउज़ करें:346

Export JSON to CSV: a note on CSV and Unicode

कई जेएस लाइब्रेरी हैं जो निर्यात को उत्कृष्टता प्रदान करने की अनुमति देती हैं। लेकिन क्या होगा अगर हम अतिरिक्त निर्भरता से बचते हुए न्यूनतम दृष्टिकोण का पालन करना चाहते हैं।

सबसे सरल तरीका JSON से CSV उत्पन्न करना होगा जिसे आसानी से एक्सेल में खोला जा सकता है।

लेकिन इससे पहले कि मैं रूपांतरण तर्क दिखाऊं, आइए समझें कि सीएसवी क्या है और सीएसवी फ़ाइल बनाते समय हम किस एन्कोडिंग का उपयोग करेंगे।

सीएसवी प्रारूप

कॉमा-सेपरेटेड वैल्यूज़ (सीएसवी) फ़ाइलों के लिए यह आरएफसी 4180 सामान्य प्रारूप और एमआईएमई प्रकार सीएसवी प्रारूप की परिभाषा निर्दिष्ट करता है। ध्यान दें कि यह केवल एक ज्ञापन है क्योंकि सीएसवी प्रारूप आधिकारिक तौर पर मानकीकृत नहीं है।

मुख्य परिभाषाएँ

  1. प्रत्येक रिकॉर्ड एक अलग लाइन पर स्थित है, जो एक लाइन ब्रेक (सीआरएलएफ) द्वारा सीमांकित है।
  2. फ़ाइल के अंतिम रिकॉर्ड में अंतिम पंक्ति विराम हो भी सकता है और नहीं भी।
  3. हेडर में पूरी फ़ाइल में समान संख्या में फ़ील्ड होने चाहिए।
  4. प्रत्येक फ़ील्ड दोहरे उद्धरण चिह्नों में संलग्न हो भी सकती है और नहीं भी।
  5. लाइन ब्रेक (सीआरएलएफ), डबल कोट्स और अल्पविराम वाले फ़ील्ड को डबल-कोट्स में संलग्न किया जाना चाहिए।
  6. यदि फ़ील्ड को घेरने के लिए डबल-कोट का उपयोग किया जाता है, तो फ़ील्ड के अंदर दिखाई देने वाले डबल-कोट से पहले एक और डबल कोट लगाकर बचना चाहिए।

एन्कोडिंग

मेरे JSON डेटा में मेरे पास ISO लैटिन-1 (ISO/IEC 8859-1) वर्ण सेट से æ å ø वर्ण हैं जिन पर सीएसवी फ़ाइल बनाते समय विचार किया जाना है।

यूनिकोड® मानक संस्करण 15.0 पर विचार करने के लिए कुछ अंश।

यूनिकोड बनाम यूटीएफ-8/16/32

यूनिकोड® मानक संस्करण 15.0 से:

  • यूनिकोड लिखित वर्णों और पाठ के लिए सार्वभौमिक वर्ण एन्कोडिंग मानक है, जिसमें दुनिया की लिपियों से 149,186 वर्ण शामिल हैं।
  • यूनिकोड वर्णों को तीन एन्कोडिंग रूपों में से एक में दर्शाया जाता है: एक 32-बिट फॉर्म (UTF-32), एक 16-बिट फॉर्म (UTF-16), और एक 8-बिट फॉर्म (UTF-8)।
  • यूनिकोड कंसोर्टियम यूनिकोड मानक को लागू करने के अनुरूप तरीके के रूप में तीन यूनिकोड एन्कोडिंग फॉर्मों में से किसी एक के उपयोग का पूरी तरह से समर्थन करता है। उदाहरण के लिए, "UTF-8 बनाम यूनिकोड" को अलग करने की कोशिश के जाल में न पड़ना महत्वपूर्ण है। यूटीएफ-8, यूटीएफ-16, और यूटीएफ-32 सभी यूनिकोड मानक के एन्कोडेड वर्णों को लागू करने के समान रूप से वैध और अनुरूप तरीके हैं।

बाइट ऑर्डर मार्क (बीओएम)

  • बाइट ऑर्डर चिह्न के लिए उपयोग किए जाने वाले वर्ण यू एफईएफएफ (यूटीएफ-8 ईएफ बीबी बीएफ) को शून्य चौड़ाई नो-ब्रेक स्पेस नाम दिया गया है।
  • यूनिकोड सादे पाठ के यूटीएफ-16 और यूटीएफ-32 एन्कोडिंग फॉर्म बाइट ऑर्डरिंग के प्रति संवेदनशील होते हैं जिनका उपयोग फ़ाइल में डेटा लिखते समय किया जाता है।
  • ए की शुरुआत में बाइट अनुक्रम की पहचान डेटा स्ट्रीम को लगभग एक निश्चित संकेत के रूप में लिया जा सकता है कि डेटा स्ट्रीम UTF-8 एन्कोडिंग योजना का उपयोग कर रही है।

संक्षेप में, सीएसवी स्ट्रिंग से पहले शून्य चौड़ाई नो-ब्रेक स्पेस जोड़ने से एक्सेल को 1252 के बजाय यूटीएफ -8 एन्कोडिंग लागू करने के लिए मजबूर किया जाएगा: पश्चिमी यूरोपीय (विंडोज़) या कुछ अन्य एन्कोडिंग जिसे एक्सेल यू एफईएफएफ वर्ण के मामले में चुनेगा उपलब्ध नहीं कराया।

मैं इस श्रृंखला की अगली पोस्ट में शून्य चौड़ाई और बिना ब्रेक स्पेस वाली सीएसवी फ़ाइल बनाने के बीच का अंतर दिखाऊंगा...

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/andrewelans/export-json-to-csv-what-is-csv-and-unicode-2341?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3