आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप CSV को NDJSON में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
CSV से NDJSON
CSV अपने कॉलम एक ही बार, सबसे ऊपर बताता है, और उसके बाद हर पंक्ति स्थिति पर निर्भर है। NDJSON इसका उलटा करता है — हर पंक्ति अपनी कुंजियों समेत एक पूरा ऑब्जेक्ट होती है।
यह मुफ़्त नहीं — कुंजियों को हर पंक्ति में दोहराने से फ़ाइल बड़ी होती है। बदले में कोई पंक्ति किसी दूसरी पंक्ति पर निर्भर नहीं रहती, और यही इस पेज की बाक़ी हर बात की नींव है।
यह बदलाव अक्सर तब चाहिए होता है जब ग्यारह महीनों के एक्सपोर्ट में से किसी एक महीने एक नया कॉलम जुड़ गया हो — चौदह कॉलम वाली और पंद्रह कॉलम वाली फ़ाइल को जोड़ना मुश्क़िल है।
NDJSON में यह दिक़्क़त नहीं — अलग-अलग कुंजियों वाले रिकॉर्ड एक ही फ़ाइल में बेझिझक रह सकते हैं, और कोई भी सही रीडर छूटी हुई कुंजी को बस अनुपस्थित मान लेता है।
रिकॉर्ड जहाँ लाइन ख़त्म होती है वहीं ख़त्म होता है, इसलिए फ़ाइल को किसी भी न्यूलाइन पर काटा जा सकता है और दोनों हिस्से सही रहते हैं। split -l एक हज़ार पंक्तियों के लोड करने लायक़ टुकड़े देता है।
जोड़ना भी उतना ही आसान है — नए रिकॉर्ड अंत में जोड़ दीजिए, ऊपर कुछ भी दोबारा लिखने की ज़रूरत नहीं। CSV में यही काम हेडर और कॉलम-क्रम जाँचने की मेहनत माँगता है।
JSON में 7 और «7» अलग हैं, CSV में नहीं — इसलिए टेक्स्ट देखकर अंदाज़ा लगाया जाता है। संख्या जैसे दिखने वाले मान JSON संख्या बन जाते हैं, बाक़ी टेक्स्ट रहते हैं।
यह अंदाज़ा मात्रा और क़ीमत के लिए सही है, पहचान-संख्या के लिए ग़लत — 007, 7 बन जाता है। अगर कॉलम में कोड हैं, नाप नहीं, तो स्रोत में ही उन्हें साफ़ टेक्स्ट बनाना बेहतर है।
ख़ाली सेल को खाली टेक्स्ट नहीं, null लिखा जाता है। JSON स्कीमा जो "type": "string" माँगती है, वह null को ठुकरा देगी — यह फ़र्क़ जानना ज़रूरी है।
बदलाव यह नहीं बता सकता कि CSV का मक़सद «यहाँ कुछ नहीं» था या «यह लागू नहीं होता» — दोनों एक ही खाली सेल में लिखे जाते हैं। यह फ़र्क़ मायने रखता है तो स्रोत में ही अलग तरीक़े से दर्ज करना होगा।
फ़ाइल jq -c के लिए बनी है, जो पूरी फ़ाइल मेमोरी में रखे बिना एक-एक मान पढ़ता है। jq -r ".city" हर शहर एक लाइन में देता है।
grep जैसे साधारण औज़ार भी सीधे काम करते हैं, क्योंकि कोई रिकॉर्ड दो लाइन में नहीं फैलता — यह वह चीज़ है जो CSV में उद्धरण-चिह्न के भीतर छिपी न्यूलाइन से मुमकिन नहीं होती।
बढ़ोतरी की उम्मीद रखिए — हर लाइन कुंजियाँ दोहराती है, हर टेक्स्ट उद्धरण-चिह्न में है। छोटे कोड और लंबी हेडिंग वाली टेबल में फ़ाइल दोगुनी तक हो सकती है।
gzip जैसी कंप्रेशन अंतर का ज़्यादातर हिस्सा भर देती है, क्योंकि दोहराई गई कुंजियाँ ठीक वही हैं जिसमें कंप्रेसर सबसे अच्छा है।
NDJSON एक ढाँचा है, वादा नहीं — फ़ील्ड-नाम, तारीख़ का रूप और null की अनुमति जैसी बातें अब भी दूसरी तरफ़ के सिस्टम की मर्ज़ी पर हैं।
तारीख़ और पहचान-संख्या दो सबसे आम फंसाव हैं — CSV की तारीख़ टेक्स्ट ही रहती है, चाहे वह किसी भी क्रम में लिखी हो। जो पहचान-संख्या ग़लती से संख्या बन गई हो, वह भी एक छोटे jq पास में ठीक हो सकती है।
CSV पढ़ना और JSON लाइनें लिखना दोनों इसी पेज में चलने वाली JavaScript है, इसलिए कोई अनुरोध फ़ाइल लेकर नहीं जाता — रात का निर्यात या वित्तीय डेटा किसी की नक़ल बने बिना बदला जा सकता है।
मुफ़्त सीमा 100 MB प्रति फ़ाइल है। बड़े एक्सपोर्ट के लिए किसी स्क्रिप्ट में स्ट्रीमिंग CSV रीडर बेहतर रास्ता है।
| CSV | NDJSON | |
|---|---|---|
| पूरा नाम | Comma-Separated Values | Newline-Delimited JSON |
| फ़ाइल एक्सटेंशन | .csv | .ndjson, .jsonl |
| मीडिया टाइप | text/csv | application/x-ndjson |
| पहली बार प्रकाशित | 1972 | 2013 |
| विनिर्देश | RFC 4180 | — |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | XLSX, JSON, Parquet | JSON |
कुछ नहीं खोता। CSV और NDJSON — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।
pandas CSV और NDJSON — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
CSV 1972 में आया। यह RFC 4180 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
NDJSON 2013 से चला आ रहा है। jq और pandas इस फ़ॉर्मेट को पढ़ लेते है।
CSV 1972 में आया और NDJSON 2013 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
नहीं। NDJSON वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है।
कुछ नहीं खोता। CSV और NDJSON — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।