CSV को JSON में कैसे कनवर्ट करें
CSV (Comma-Separated Values) सारणीबद्ध डेटा के लिए सबसे सरल प्रारूप है, हर स्प्रेडशीट इसे निर्यात कर सकती है। JSON (JavaScript Object Notation) वेब API और आधुनिक अनुप्रयोगों के लिए मानक प्रारूप है। उनके बीच परिवर्तन विकास में सबसे सामान्य डेटा कार्यों में से एक है। ब्राउज़र-आधारित कन्वर्टर पूरा काम स्थानीय रूप से संभालता है, आपके डेटा को सर्वर पर अपलोड किए बिना।
जब आपको CSV से JSON की आवश्यकता हो
- वेब एप्लिकेशन में डेटा लोड करना: अधिकांश JavaScript फ्रेमवर्क मूल रूप से JSON के साथ काम करते हैं, CSV नहीं
- API पेलोड: यदि आपके पास स्प्रेडशीट में डेटा है जिसे API एंडपॉइंट पर जाना है, तो उसे JSON होना चाहिए
- डेटाबेस आयात: कई NoSQL डेटाबेस (MongoDB, Firebase) सीधे JSON स्वीकार करते हैं
- कॉन्फ़िगरेशन फ़ाइलें: सेटिंग्स की एक स्प्रेडशीट को JSON कॉन्फ़िगरेशन फ़ाइल में बदलना
- डेटा विश्लेषण: निर्यात किए गए डेटा को ऐसे प्रारूप में बदलना जिसे आपके उपकरण संसाधित कर सकें
- GraphQL म्यूटेशन: GraphQL एंडपॉइंट के माध्यम से स्प्रेडशीट से रिकॉर्ड्स को थोक में डालना
- परीक्षण फिक्सचर्स: स्वचालित परीक्षणों के लिए स्प्रेडशीट में परीक्षण मामलों की सूची को JSON में बदलना
- वेबहुक पेलोड: जब एक सेवा JSON की अपेक्षा करती है लेकिन आपके पास स्प्रेडशीट में डेटा है
- अंतर्राष्ट्रीयकरण (i18n) फ़ाइलें: कुंजी/लोकेल कॉलम के साथ एक अनुवाद स्प्रेडशीट JSON कैटलॉग बन जाती है
- विरासत प्रणालियों से माइग्रेट करना: पुरानी प्रणालियाँ अक्सर CSV निर्यात करती हैं; नई प्रणालियाँ अक्सर JSON का उपभोग करती हैं
- LLM में डेटा लोड करना: संरचित JSON CSV की तुलना में ChatGPT, Claude के लिए तर्क करना आसान है
CSV कैसे JSON बनता है
एक CSV फ़ाइल:
name,age,city
Alice,30,New York
Bob,25,London
ऑब्जेक्ट्स की एक JSON सरणी बन जाती है:
[
{"name": "Alice", "age": "30", "city": "New York"},
{"name": "Bob", "age": "25", "city": "London"}
]
पहली पंक्ति (हेडर) कुंजी बन जाती है। प्रत्येक बाद की पंक्ति एक ऑब्जेक्ट बन जाती है।
कैसे परिवर्तित करें
- अपना CSV डेटा पेस्ट करें: हेडर पंक्ति के साथ अल्पविराम-पृथक डेटा दर्ज करें।
- अपना सीमांकक चुनें: अल्पविराम, अर्धविराम, टैब या पाइप चुनें। उपकरण अधिकांश मामलों में स्वचालित रूप से पता लगाता है।
- कॉपी या डाउनलोड करें: JSON आउटपुट की समीक्षा करें और इसे क्लिपबोर्ड पर कॉपी करें या
.jsonफ़ाइल के रूप में डाउनलोड करें।
CSV और JSON का संक्षिप्त इतिहास
CSV दशकों से पुराना प्रारूप है। अल्पविराम-पृथक टेक्स्ट की अवधारणा 1960 और 1970 के दशक की है, जो मेनफ्रेम कार्यक्रमों के बीच डेटा का आदान-प्रदान करने का एक तरीका था। IBM Fortran (1972) ने सूची-निर्देशित I/O का समर्थन किया जो अल्पविराम-पृथक आउटपुट उत्पन्न करता था। CSV को 2005 में RFC 4180 तक औपचारिक रूप से मानकीकृत नहीं किया गया था, उस समय तक सूक्ष्म विविधताओं (उद्धरण नियम, लाइन एंडिंग, एन्कोडिंग) के साथ अरबों CSV फ़ाइलें पहले से ही मौजूद थीं।
JSON बहुत बाद में आया: Douglas Crockford ने इसे 2001 में निर्दिष्ट किया, औपचारिक RFC 4627 2006 में, ECMA-404 2013 में। JSON वेब के लिए डिज़ाइन किया गया था; CSV मेनफ्रेम पर बैच डेटा प्रसंस्करण के लिए डिज़ाइन किया गया था। दो प्रारूपों की अलग ताकत है:
| पहलू | CSV | JSON |
|---|---|---|
| संरचना | सपाट तालिका (पंक्तियाँ + स्तंभ) | नेस्टेड, पदानुक्रमित |
| प्रकार | बिना प्रकार (सब कुछ टेक्स्ट है) | टाइप किया गया (स्ट्रिंग, संख्या, बूल, null, सरणी, ऑब्जेक्ट) |
| हेडर | पहली पंक्ति सम्मेलन | प्रति ऑब्जेक्ट फ़ील्ड नाम |
| आकार | सारणीबद्ध डेटा के लिए कॉम्पैक्ट | अधिक वर्बोज़, संरचना शामिल |
| उपकरण | Excel, सभी स्प्रेडशीट | हर आधुनिक प्रोग्रामिंग भाषा |
| स्ट्रीमिंग | लाइन-दर-लाइन आसान | संपूर्ण-फ़ाइल पार्सिंग डिफ़ॉल्ट (लेकिन JSON Lines मौजूद है) |
| कठोर स्पेक | RFC 4180 (2005), अक्सर अनदेखा | RFC 8259 (2017), कठोर |
CSV से JSON रूपांतरण अनिवार्य रूप से पंक्ति-उन्मुख सपाट डेटा से कुंजी-मान ऑब्जेक्ट नोटेशन में अनुवाद है। अधिकांश कठिनाई किनारे के मामलों (उद्धरित मान, एम्बेडेड सीमांकक, गैर-UTF-8 एन्कोडिंग) को संभालने में है जिसे CSV स्पेक ने अनुमान नहीं किया था।
मुश्किल CSV डेटा को संभालना
उद्धरित मान: जब किसी मान में सीमांकक वर्ण होता है (जैसे अल्पविराम वाला पता), तो इसे दोहरे उद्धरणों में लपेटा जाना चाहिए: "New York, NY"। अच्छे कन्वर्टर इसे सही ढंग से संभालते हैं।
खाली मान: खाली कोशिकाएँ JSON में खाली स्ट्रिंग बन जाती हैं ("field": "")। यदि आपको उन्हें null की आवश्यकता है, तो आपको आउटपुट को पोस्ट-प्रोसेस करने की आवश्यकता हो सकती है।
संख्यात्मक मान: CSV में डेटा प्रकार नहीं हैं। सब कुछ टेक्स्ट है। JSON आउटपुट में स्ट्रिंग के रूप में संख्याएँ होंगी ("30" न कि 30)। यदि आपके एप्लिकेशन को वास्तविक संख्याओं की आवश्यकता है, तो रूपांतरण के बाद उन्हें पार्स करें।
मानों में लाइन ब्रेक: कुछ CSV फ़ाइलों में मल्टी-लाइन मान होते हैं (उद्धरणों में संलग्न)। सभी कन्वर्टर इसे संभालते नहीं हैं, अपने विशिष्ट डेटा के साथ परीक्षण करें।
एस्केप किए गए उद्धरण: एक उद्धरित मान के अंदर एक उद्धरण इसे दोगुना करके एस्केप किया जाता है: "उसने ""हैलो"" कहा"। अधिकांश पार्सर इसे सही ढंग से संभालते हैं।
अनुगामी रिक्ति: name ,age, city जैसे हेडर में अतिरिक्त रिक्तियाँ अव्यवस्थित कुंजी बनाती हैं। अच्छे कन्वर्टर डिफ़ॉल्ट रूप से ट्रिम करते हैं; कुछ रिक्तियों को शाब्दिक रूप से संरक्षित करते हैं।
बाइट ऑर्डर मार्क्स: फ़ाइल की शुरुआत में एक UTF-8 BOM पहले हेडर के पहले तीन वर्णों के रूप में दिखाई दे सकता है। कुछ कन्वर्टर BOM को हटा देते हैं; अन्य नहीं।
विभिन्न लाइन एंडिंग: Windows से CSV फ़ाइलों में CRLF है, Unix में LF है, पुराने Macs में CR था। मजबूत पार्सर सभी तीन को संभालते हैं।
आउटपुट प्रारूप विविधताएँ
CSV से JSON कन्वर्टर अक्सर कई आउटपुट विकल्प प्रदान करते हैं:
| आउटपुट | उदाहरण | सर्वश्रेष्ठ उपयोग |
|---|---|---|
| ऑब्जेक्ट्स की सरणी | [{"a":1},{"a":2}] | API प्रतिक्रियाएँ, डिफ़ॉल्ट |
| ऑब्जेक्ट्स का ऑब्जेक्ट (पहले कॉलम द्वारा कीड) | {"id1":{"name":"x"},"id2":{...}} | लुकअप तालिकाएँ, ID-कीड रिकॉर्ड्स |
| सरणियों की सरणी | [["a","b"],[1,2],[3,4]] | क्रम संरक्षित कच्चा पंक्ति डेटा |
| कॉलमर | {"a":[1,3],"b":[2,4]} | सांख्यिकीय विश्लेषण (pandas-अनुकूल) |
| JSON Lines (NDJSON) | {"a":1}\n{"a":2} | स्ट्रीमिंग, लॉग प्रसंस्करण |
| हेडर द्वारा नेस्टेड | address.city से [{"address":{"city":"NY"}}] | सपाट CSV से नेस्टेड डेटा |
डिफ़ॉल्ट ऑब्जेक्ट्स की सरणी है, जो लगभग सभी वेब API परिदृश्यों के लिए काम करती है। यदि आपके पास लाखों पंक्तियाँ हैं और स्ट्रीमिंग प्रसंस्करण की आवश्यकता है तो JSON Lines उपयोगी है।
प्रकार अनुमान
कुछ कन्वर्टर प्रकार अनुमान प्रदान करते हैं:
- बंद (डिफ़ॉल्ट सुरक्षित): प्रत्येक मान एक स्ट्रिंग है। पूर्वानुमेय लेकिन प्राप्त कोड को पार्स करना आवश्यक है।
- स्वचालित: संख्याएँ, बूलियन, null, तिथियाँ का पता लगाएं।
"30"30बन जाता है,"true"trueबन जाता है,""nullबन जाता है। सुविधाजनक लेकिन त्रुटि-प्रवण ("00525"जैसा पिन कोड525बन जाता है)। - स्कीमा-संचालित: एक JSON स्कीमा या कॉलम प्रकार के संकेत प्रदान करें; प्रत्येक कॉलम को उसके निर्दिष्ट प्रकार में परिवर्तित करें। उत्पादन डेटा के लिए सर्वश्रेष्ठ।
आंतरिक उपयोग के लिए जहाँ आप डेटा को नियंत्रित करते हैं, स्वचालित अनुमान समय बचाता है। अविश्वसनीय इनपुट के लिए, प्रकारों को स्ट्रिंग के रूप में छोड़ें और अपने कोड में स्पष्ट रूप से पार्स करें।
सामान्य चूक
- अग्रणी शून्य खो गए: अग्रणी शून्य वाले फ़ोन नंबर, पिन कोड या उत्पाद आईडी (
00525,09876) का एक कॉलम एक संख्या बन जाता है जो शून्य खो देता है जब तक कि आप इसे स्ट्रिंग के रूप में नहीं रखते। इन कॉलमों को उद्धरित करें या प्रकार अनुमान को अक्षम करें। - Excel फॉर्मूला इंजेक्शन:
=से शुरू होने वाला एक CSV मान (=SUM(...)) मूल रूप से एक स्प्रेडशीट फॉर्मूला था। JSON में परिवर्तित करना शाब्दिक टेक्स्ट को रखता है लेकिन यदि आप एक स्प्रेडशीट में पुनः आयात करते हैं, तो फॉर्मूला निष्पादित होता है। उपयोगकर्ता-अपलोडेड CSV के लिए अग्रणी=,+,-,@हटा दें। - एन्कोडिंग बेमेल: Windows पर Excel से निर्यात किया गया एक CSV अक्सर Windows-1252 या Latin-1 होता है, UTF-8 नहीं। गैर-ASCII वर्ण (उच्चारण, इमोजी) रूपांतरण पर मोजीबेक बन जाते हैं। पहले CSV को UTF-8 के रूप में सहेजें।
- असंगत कॉलम गणना: कुछ पंक्तियों में हेडर से अधिक या कम फ़ील्ड होते हैं। सख्त पार्सर विफल हो जाते हैं; उदार पैड या ट्रंकेट करते हैं। सत्यापित करें कि आपके डेटा का एक सुसंगत आकार है।
- डुप्लिकेट हेडर:
name, name, ageअस्पष्ट है। अधिकांश कन्वर्टर केवल डुप्लिकेट नाम के साथ अंतिम मान रखते हैं; कुछ उन्हेंname,name_2बनाते हैं। स्रोत में नाम बदलें। - डॉट्स या ब्रैकेट वाले हेडर: एक कॉलम
address.cityको कुछ कन्वर्टर द्वारा नेस्टेड JSON ({"address":{"city":...}}) के रूप में व्याख्या किया जा सकता है। सही आउटपुट मोड चुनें। - मिश्रित उद्धरण वर्ण: कुछ स्रोत सीधे डबल कोट्स के बजाय एकल कोट्स या स्मार्ट कोट्स (कर्ली) का उपयोग करते हैं। अधिकांश कन्वर्टर सीधे डबल की अपेक्षा करते हैं।
- अनुगामी न्यूलाइन:
\nके साथ समाप्त होने वाला CSV एक अतिरिक्त खाली ऑब्जेक्ट उत्पन्न कर सकता है या नहीं भी कर सकता है। अनुगामी रिक्ति को ट्रिम करें। - हेडर पंक्ति अनुपस्थित: यदि आपके CSV में हेडर नहीं है, तो कन्वर्टर पहली डेटा पंक्ति को कुंजी के रूप में उपयोग कर सकता है (गलत)। हेडर जोड़ें या सरणियों की सरणी आउटपुट का उपयोग करें।
- बहुत बड़ी फ़ाइलें: एक 100 MB CSV एक 200+ MB JSON का उत्पादन करता है। ब्राउज़र मेमोरी संघर्ष कर सकती है। बड़ी फ़ाइलों के लिए, JSON Lines (NDJSON) का उपयोग करें और लाइन-दर-लाइन प्रसंस्करण करें।
सुझाव
- अपने हेडर की जाँच करें: पहली पंक्ति साफ, अनूठे कॉलम नाम होनी चाहिए। रिक्तियाँ, विशेष वर्ण या डुप्लिकेट हेडर अव्यवस्थित JSON कुंजियाँ बनाएँगे।
- सीमांकक सत्यापित करें: यूरोपीय CSV अक्सर अल्पविराम के बजाय अर्धविराम का उपयोग करते हैं (क्योंकि कई यूरोपीय देशों में अल्पविरामों को दशमलव विभाजक के रूप में उपयोग किया जाता है)। यदि रूपांतरण गलत दिखता है, तो एक अलग सीमांकक आज़माएँ।
- आउटपुट को प्रारूपित करें: रूपांतरण के बाद, अपनी परियोजना में उपयोग करने से पहले JSON को पठनीय बनाने के लिए एक प्रारूपक के माध्यम से चलाएँ।
- परिणामों की स्पॉट-जाँच करें: यह सुनिश्चित करने के लिए JSON आउटपुट की कुछ पंक्तियों की तुलना मूल CSV से करें कि मैपिंग सही है, विशेष रूप से कई कॉलम वाली फ़ाइलों के लिए।
- Excel से UTF-8 के रूप में सहेजें: Excel में, एन्कोडिंग समस्याओं से बचने के लिए सादे «CSV» के बजाय «CSV UTF-8 (अल्पविराम सीमांकित)» चुनें। Apple Numbers और Google Sheets डिफ़ॉल्ट UTF-8 हैं।
- बड़ी फ़ाइलों के लिए पहले एक CSV लिंटर का उपयोग करें:
csvlintयाcsvkitजैसे उपकरण आपके रूपांतरण से पहले विकृत पंक्तियों को पकड़ते हैं। - पहले नमूना लें, बाद में परिवर्तित करें: एक 50,000-पंक्ति CSV के लिए, परीक्षण के रूप में पहली 100 पंक्तियों को परिवर्तित करें, आउटपुट आकार सत्यापित करें, फिर बाकी को परिवर्तित करें।
- मूल रखें: स्रोत CSV को कभी न हटाएँ। यदि आपका JSON गलत दिखता है, तो आपको पुन: संसाधित करने के लिए मूल की आवश्यकता है।
- गहराई से नेस्टेड डेटा के लिए, एक छोटी स्क्रिप्ट लिखें: एक-लाइन CSV से JSON रूपांतरण ~80% मामलों में फिट होता है। जटिल नेस्टिंग (प्रति पंक्ति आइटम्स की सरणियाँ, सशर्त फ़ील्ड) के लिए, pandas + कस्टम परिवर्तन वाला Python किसी भी सामान्य कन्वर्टर की तुलना में अधिक लचीला है।
गोपनीयता और गोपनीय डेटा
CSV से JSON कन्वर्टर पूरी तरह से आपके ब्राउज़र में चलता है। आप जो डेटा पेस्ट करते हैं, मध्यवर्ती प्रसंस्करण, और आउटपुट JSON सभी आपके डिवाइस पर रहते हैं। कुछ भी सर्वर पर अपलोड नहीं किया जाता, लॉग नहीं किया जाता, या किसी के साथ साझा नहीं किया जाता।
यह महत्वपूर्ण है क्योंकि आप जो CSV परिवर्तित करते हैं उनमें अक्सर संवेदनशील डेटा होता है: ईमेल पते और फ़ोन नंबर वाली ग्राहक सूचियाँ, वेतन वाले कर्मचारी रिकॉर्ड, वित्तीय लेनदेन, बिक्री पाइपलाइन डेटा, मार्केटिंग लीड, आंतरिक उत्पाद विश्लेषण, EHR सिस्टम से निर्यात किए गए मेडिकल रिकॉर्ड, छात्र ग्रेड, भुगतान इतिहास। क्लाउड CSV से JSON कन्वर्टर प्रत्येक पेस्ट को लॉग करते हैं, कभी-कभी «सेवा सुधार» के लिए उन्हें बनाए रखते हैं, और वास्तविक डेटा लीक में शामिल रहे हैं जहाँ चिपकाई गई ग्राहक सूचियाँ लॉग की निगरानी करने वाले हमलावरों को लीक हुईं। ब्राउज़र-आधारित कन्वर्टर में शून्य एक्सपोज़र है: डेटा कभी आपकी मशीन नहीं छोड़ता।
ब्राउज़र-आधारित रूपांतरण पृष्ठ लोड होने के बाद ऑफ़लाइन भी काम करता है, हवाई जहाज़ों पर, इंटरनेट एक्सेस के बिना सुरक्षित वातावरण में डेटा संसाधित करने के लिए, या कहीं भी जहाँ आप किसी तृतीय पक्ष सेवा में ग्राहक या वित्तीय डेटा नहीं चिपका सकते या नहीं चिपकाना चाहिए, उपयोगी।
अक्सर पूछे जाने वाले प्रश्न
हेडर पंक्ति के साथ क्या होता है?
पहली पंक्ति का उपयोग JSON ऑब्जेक्ट्स के लिए कुंजी के रूप में किया जाता है। प्रत्येक बाद की पंक्ति इन कुंजियों के साथ एक ऑब्जेक्ट बन जाती है। उदाहरण के लिए, «name,age» हेडर के साथ «Alice,30» पंक्ति {"name":"Alice","age":"30"} बन जाती है।
कौन से डिलीमीटर समर्थित हैं?
अल्पविराम, अर्धविराम, टैब और ऊर्ध्वाधर बार सभी समर्थित हैं। टूल डिलीमीटर का स्वचालित रूप से पता लगा सकता है या आप इसे मैन्युअल रूप से चुन सकते हैं।
क्या यह मानों के अंदर अल्पविराम संभालता है?
हाँ। दोहरे उद्धरणों से घिरे मानों (जैसे «New York, NY») को सही ढंग से संभाला जाता है, उद्धरणों के अंदर अल्पविराम को मान के हिस्से के रूप में माना जाता है, विभाजक के रूप में नहीं।
क्या मेरा डेटा किसी सर्वर पर भेजा जाता है?
नहीं। सारा कन्वर्ज़न आपके ब्राउज़र में होता है। आपका डेटा कभी आपके डिवाइस से बाहर नहीं जाता।