डेटा कन्वर्टर्स · 5 मिनट पढ़ें
CSV से JSON: स्प्रेडशीट से संरचित डेटा तक
CSV कंप्यूटिंग में सबसे सरल प्रारूप की तरह दिखता है और सबसे पेचीदा में से एक की तरह व्यवहार करता है। CSV से JSON रूपांतरण वह है जहां वे छिपे हुए नियम सामने आते हैं: उद्धृत फ़ील्ड के अंदर एक अल्पविराम, एक यूरोपीय स्प्रेडशीट से अर्धविराम सीमांकक, संख्याओं का एक स्तंभ जो पाठ रहना चाहिए। यह जानने से कि पार्सर क्या कर रहा है, विफल आयात को दो मिनट के सुधार में बदल देता है।
अद्यतन
हेडर पंक्ति आपकी कुंजी बन जाती है
पहली पंक्ति JSON संपत्ति नाम प्रदान करती है और प्रत्येक अगली पंक्ति एक ऑब्जेक्ट बन जाती है। इसका मतलब है कि हेडर स्वच्छता स्कीमा डिज़ाइन है: हेडर में रिक्त स्थान, डुप्लिकेट नाम और विराम चिह्न ऐसी कुंजियाँ उत्पन्न करते हैं जिनका आप आराम से उपभोग नहीं कर सकते हैं। कनवर्ट करने से पहले `snake_case` या `camelCase` का नाम बदलें, और पुष्टि करें कि कोई भी दो कॉलम एक नाम साझा नहीं करते हैं - अधिकांश कार्यान्वयन में एक डुप्लिकेट हेडर चुपचाप ओवरराइट किया जाता है।
CSV में सब कुछ एक स्ट्रिंग है
CSV का कोई प्रकार नहीं है, इसलिए एक कनवर्टर यह तय करता है कि प्रत्येक कॉलम की व्याख्या कैसे की जाए। संख्याएँ संख्याएँ बन जाती हैं ताकि आप अंकगणित कर सकें; `true`/`false` बूलियन बन जाते हैं; आपकी पसंद के आधार पर खाली फ़ील्ड `null` या एक खाली स्ट्रिंग बन जाते हैं। जाल पहचानकर्ता है: डाक कोड, फ़ोन नंबर, इनवॉइस नंबर और संस्करण स्ट्रिंग जैसे `1.10` को स्ट्रिंग ही रहना चाहिए, अन्यथा आप अग्रणी शून्य और अनुगामी महत्व खो देंगे। यदि कोई कॉलम संख्यात्मक दिखता है लेकिन एक पहचानकर्ता है, तो उसे टेक्स्ट के रूप में रखें।
उद्धरण, अल्पविराम और नई पंक्तियाँ
आरएफसी 4180 को दशकों पहले हल किया गया था: यदि किसी फ़ील्ड में अल्पविराम, उद्धरण या लाइन ब्रेक होता है, तो इसे दोहरे उद्धरण चिह्नों में लपेटा जाता है, और आंतरिक उद्धरण दोगुने हो जाते हैं। कोई भी अनुवर्ती पार्सर - पापा पार्स यहां बंडल किया गया है - बिना किसी दूसरे विचार के एम्बेडेड अल्पविराम और बहु-पंक्ति कोशिकाओं के साथ लिपटे फ़ील्ड को संभालता है। एक पार्सर जो सहजता से अल्पविरामों में विभाजित हो जाता है, ऐसे कॉलम उत्पन्न करेगा जो एक पता फ़ील्ड में अल्पविराम होते ही स्थानांतरित हो जाते हैं, जो कि क्लासिक "मेरा डेटा एक से ऑफसेट क्यों है" बग है।
सीमांकक स्थान के अनुसार भिन्न होते हैं: कई यूरोपीय स्थानों में स्प्रेडशीट अर्धविराम से अलग की गई फ़ाइलों को निर्यात करती हैं, और TSV टैब का उपयोग करती हैं। यदि प्रत्येक पंक्ति एक लंबी कुंजी में सिमट जाती है, तो सीमांकक गलत है - अर्धविराम या टैब चुनें और फिर से चलाएँ।
CSV फ़ाइलें कहां से आती हैं (और वे क्या ले जाती हैं)
एनालिटिक्स टूल, सीआरएम सिस्टम, बिलिंग प्लेटफॉर्म और डेटाबेस से निर्यात सबसे आम स्रोत हैं - और उनमें नियमित रूप से ग्राहकों के नाम, ईमेल और राजस्व आंकड़े शामिल होते हैं। स्थानीय रूप से परिवर्तित करने से वह डेटा पूरी तरह से नेटवर्क से दूर रहता है। ब्राउज़र में YamlBox CSV से JSON कनवर्टर पार्स, आपको सीमांकक और प्रकार हैंडलिंग चुनने देता है, और अक्षम नेटवर्क के साथ काम करता रहता है।
अपेक्षाओं को आकार देना
एक CSV फ़ाइल प्रति पंक्ति लगभग एक JSON ऑब्जेक्ट होती है, इसलिए परिवर्तित दस्तावेज़ बड़ा होता है - कुंजियाँ प्रत्येक पंक्ति पर दोहराई जाती हैं, और सुंदर-मुद्रण शीर्ष पर इंडेंटेशन जोड़ता है। आपके ब्राउज़र को रोकने के लिए पर्याप्त बड़ी फ़ाइल के लिए, ऑब्जेक्ट की एक सरणी को परिवर्तित करना और फिर छोटा करना सबसे छोटा व्यावहारिक परिणाम देता है, और यदि स्ट्रीम या लॉग पाइपलाइन अगला उपभोक्ता है तो JSON लाइनों (प्रति पंक्ति एक ऑब्जेक्ट, कोई सरणी नहीं) में कनवर्ट करना सही आकार है।
CSV से JSON - अक्सर पूछे जाने वाले प्रश्न
मेरे CSV में संख्याएँ स्ट्रिंग के रूप में क्यों आ रही हैं?
CSV कोई प्रकार संग्रहीत नहीं करता है, इसलिए कनवर्टर प्रति कॉलम निर्णय लेता है। यदि कोई मान संख्यात्मक दिखता है तो इसे आमतौर पर परिवर्तित कर दिया जाता है, लेकिन अग्रणी शून्य या अनुगामी बिंदुओं वाले पहचानकर्ताओं को स्ट्रिंग बने रहने की आवश्यकता होती है। प्रकार-अनुमान सेटिंग देखें और पहचानकर्ता कॉलम को टेक्स्ट के रूप में रखें।
क्या मैं अर्धविराम-सीमांकित फ़ाइल को परिवर्तित कर सकता हूँ?
हाँ - सीमांकक को अर्धविराम पर सेट करें। कई यूरोपीय स्प्रेडशीट निर्यात अर्धविराम का उपयोग करते हैं जब दशमलव विभाजक अल्पविराम होता है, और अल्पविराम की अपेक्षा करने वाला एक पार्सर अन्यथा पूरी पंक्ति वाले एक कॉलम को वापस कर देगा।
क्या ब्राउज़र में ग्राहक डेटा के साथ CSV कनवर्ट करना सुरक्षित है?
इसे अपलोड करने की तुलना में यह अधिक सुरक्षित है। क्लाइंट-साइड रूपांतरण कभी भी फ़ाइल को प्रसारित नहीं करता है, इसलिए ईमेल या राजस्व आंकड़ों वाला निर्यात आपकी मशीन पर रहता है, और टूल ऑफ़लाइन काम करना जारी रखता है - जिसे डिस्कनेक्ट करके और फिर से कनवर्ट करके सत्यापित करना आसान है।
इस पोस्ट में उल्लिखित उपकरण
पढ़ने के लिए और लेख
5 मिनट पढ़ें
JSON से CSV: अर्थ खोए बिना नेस्टेड डेटा को समतल करना
स्तंभों में चपटी नेस्टेड वस्तुओं, सुसंगत हेडर और एक्सेल-सुरक्षित उद्धरण के साथ JSON को CSV में बदलें - और जानें कि कौन सी आकृतियाँ बिल्कुल भी चपटी नहीं होनी चाहिए।
6 मिनट पढ़ें
एक्सेल से JSON: कार्यपुस्तिकाओं को संरचित डेटा में बदलना
XLSX कार्यपुस्तिकाओं से ब्राउज़र में Excel को JSON में कनवर्ट करें - हेडर, दिनांक क्रमांक, सूत्र और एकाधिक शीट समझाई गई, बिना कुछ भी अपलोड किए।
5 मिनट पढ़ें
Markdown तालिकाएँ: पाइपों की गिनती के बजाय उन्हें उत्पन्न करें
पंक्तियों या स्प्रेडशीट से GitHub-स्वादयुक्त मार्कडाउन तालिकाएँ बनाएँ - संरेखण, एस्केपिंग पाइप, और जब कोई तालिका आपके README के लिए गलत विकल्प हो।