YamlBox

डेटा कन्वर्टर्स · 5 मिनट पढ़ें

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 आमतौर पर नहीं होता है, यही कारण है कि पतों वाली पंक्तियों पर आयात रुक-रुक कर विफल हो जाता है।

फ़ाइल को एक्सेल में व्यवहारित करना

एक्सेल सिस्टम एन्कोडिंग को तब तक मानता है जब तक कि अन्यथा न बताया जाए, इसलिए उच्चारित वर्ण भ्रष्ट हो सकते हैं। बाइट-ऑर्डर चिह्न के साथ यूटीएफ-8 उत्सर्जित करने से इससे बचा जा सकता है; इसके बिना, वही फाइल जो नंबर्स या शीट्स में परफेक्ट दिखती है, एक्सेल में मोजिबेक दिखाती है। लंबे संख्यात्मक पहचानकर्ता - कार्ड नंबर, बड़े SKU - भी उद्धृत करने लायक हैं ताकि एक्सेल उन्हें वैज्ञानिक नोटेशन में परिवर्तित न करे।

जब CSV ग़लत आउटपुट हो

यदि उपभोक्ता एक प्रोग्राम है, तो CSV बिना किसी लाभ के प्रकार की जानकारी और नेस्टिंग को फेंक देता है - JSON लाइन्स या डेटाबेस लोड बेहतर है। सीएसवी स्प्रेडशीट वाले मनुष्यों के लिए है: रिपोर्ट, निर्यात, सामंजस्य। आदत के बजाय जानबूझकर इसे चुनना, आधा काम है। YamlBox JSON से CSV कनवर्टर पूरी तरह से ब्राउज़र में चलता है, इसलिए ग्राहक पंक्तियों वाला निर्यात आपकी मशीन को कभी नहीं छोड़ता है।

JSON से CSV - अक्सर पूछे जाने वाले प्रश्न

JSON को CSV में परिवर्तित करते समय नेस्टेड वस्तुओं को कैसे संभाला जाता है?

वे डिफ़ॉल्ट रूप से डॉट नोटेशन के साथ चपटे होते हैं - `customer.name` अपना स्वयं का कॉलम बन जाता है। आप इसके बजाय मानों को समूहीकृत रख सकते हैं, लेकिन चपटे कॉलम ही फ़ाइल को स्प्रेडशीट में फ़िल्टर करने योग्य और पिवोट करने योग्य बनाते हैं।

रूपांतरण के बाद एक्सेल में उच्चारण वाले अक्षर गलत क्यों दिखते हैं?

एक्सेल स्थानीय सिस्टम एन्कोडिंग का उपयोग करके फ़ाइल को पढ़ता है जब तक कि बाइट-ऑर्डर चिह्न अन्यथा न कहे। BOM के साथ UTF-8 निर्यात करने से नाम बरकरार रहते हैं; इसके बिना वही डेटा Google शीट्स में सही ढंग से प्रस्तुत होता है और एक्सेल में गलत तरीके से प्रस्तुत होता है।

क्या मैं वस्तुओं की एक श्रृंखला को CSV में परिवर्तित कर सकता हूँ?

कॉलम सभी रिकॉर्ड्स में कुंजियों के संघ से आते हैं, इसलिए मिश्रित आकार की वस्तुओं की एक सरणी अभी भी रिक्त स्थान के साथ एक वैध तालिका बनाती है जहां एक कुंजी गायब थी। उन ऑब्जेक्टों के अंदर ऐरे ऐसे मामले हैं जिन्हें दूसरी फ़ाइल में विभाजित करने की आवश्यकता होती है।

इस पोस्ट में उल्लिखित उपकरण

19 टूल की पूरी सूची ब्राउज़ करें

पढ़ने के लिए और लेख

5 मिनट पढ़ें

CSV से JSON: स्प्रेडशीट से संरचित डेटा तक

ब्राउज़र में CSV को JSON में कनवर्ट करें - हेडर पंक्तियाँ, सीमांकक, उद्धरण नियम और प्रकार प्रबंधन समझाया गया, स्प्रेडशीट निर्यात के साथ जो पार्सर को तोड़ता है।

6 मिनट पढ़ें

एक्सेल से JSON: कार्यपुस्तिकाओं को संरचित डेटा में बदलना

XLSX कार्यपुस्तिकाओं से ब्राउज़र में Excel को JSON में कनवर्ट करें - हेडर, दिनांक क्रमांक, सूत्र और एकाधिक शीट समझाई गई, बिना कुछ भी अपलोड किए।

5 मिनट पढ़ें

Markdown तालिकाएँ: पाइपों की गिनती के बजाय उन्हें उत्पन्न करें

पंक्तियों या स्प्रेडशीट से GitHub-स्वादयुक्त मार्कडाउन तालिकाएँ बनाएँ - संरेखण, एस्केपिंग पाइप, और जब कोई तालिका आपके README के ​​लिए गलत विकल्प हो।

सभी 19 पोस्ट →