आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप TSV को JSON में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
TSV से JSON
औज़ार tab की तरफ़ तब जाते हैं जब डेटा कॉमा से भरा हो और उद्धरण-चिह्न की झंझट न चाहिए। डेटाबेस क्लाइंट नतीजे tab से छापते हैं। जीनोम ब्राउज़र, अनुक्रम एनोटेशन फ़ाइलें और expression तालिकाएँ रिवाज़ से tab इस्तेमाल करती हैं। विज्ञापन प्लेटफ़ॉर्म और एनालिटिक्स कंसोल इन्हें इसलिए निर्यात करते हैं क्योंकि campaign के नाम और पन्ने के शीर्षक विराम-चिह्नों से भरे होते हैं।
यह चुनाव कॉमा के ख़िलाफ़ भरोसा ख़रीदता है और लगभग बाक़ी सब कुछ छोड़ देता है। फ़ाइल में कोई टाइप नहीं, कोई nesting नहीं, किसी कॉलम को पहचानकर्ता बताने का कोई तरीक़ा नहीं, और किसी मान के भीतर tab आ जाने से कोई बचाव नहीं। यह ढोने के लिए अच्छा फ़ॉर्मेट है और हिसाब लगाने के लिए ख़राब, इसीलिए इसे मिलते ही सबसे पहला काम इसे बदलना होता है।
हेडर पंक्ति कुँजी देती है, और हर अगली पंक्ति एक ऑब्जेक्ट बन जाती है। नतीजा एक JSON ऐरे है — वह आकार जिसे कोई स्क्रिप्ट, नोटबुक या लगभग हर लाइब्रेरी «डेटा» कहने पर मान लेती है।
इसके इर्द-गिर्द कुछ लपेटा नहीं जाता और किसी ID कॉलम से चाभी नहीं दी जाती, क्योंकि दोनों के लिए यह जानना ज़रूरी है कि कौन-सा कॉलम पहचानकर्ता है, और यह फ़ैसला कोई कन्वर्टर नहीं ले सकता। ऐरे सबसे कम मान लेता है, और किसी भी फ़ील्ड से चाभी बनाकर lookup बनाना जो भी भाषा आप लिख रहे हैं उसमें एक लाइन का काम है।
tab-separated फ़ाइल में किसी मान के भीतर tab के लिए कोई मान्य escape नहीं, और भीतर लाइन-ब्रेक इससे भी बुरा है: पंक्ति वहीं ख़त्म हो जाती है जहाँ मान को जारी रहना था। दोनों व्यवहार में होते हैं, आम तौर पर किसी नोट्स या विवरण कॉलम में जहाँ किसी ने कुछ पेस्ट किया हो।
JSON में ये सामान्य कैरेक्टर हैं। tab स्ट्रिंग के भीतर \t लिखा जाता है और नई लाइन \n, और इनमें से कोई भी दस्तावेज़ के ढाँचे को छू नहीं सकता, क्योंकि ढाँचा curly brace और bracket से बनता है, डेटा के कैरेक्टर से नहीं।
`Gene symbol` जैसा शीर्षक ठीक `Gene symbol` कुँजी बनता है, बीच की जगह समेत, और `Cost (USD)` अपने कोष्ठक रखता है। कुछ भी नाम नहीं बदला जाता, छोटे अक्षरों में नहीं किया जाता, snake_case में नहीं बदला जाता, क्योंकि जो कन्वर्टर चुपचाप आपके कॉलम के नाम बदल दे, वह नतीजे को स्रोत से मिलाना नामुमकिन बना देगा।
इसका असर वहीं दिखता है जहाँ आप इसे इस्तेमाल करते हैं। `row.Gene symbol` ज़्यादातर भाषाओं में मान्य नहीं, और आपको `row["Gene symbol"]` लिखना होगा। एक ही शीर्षक वाले दो कॉलम पर नज़र रखिए: ऑब्जेक्ट की कुँजी अनूठी होती हैं, इसलिए बाद वाला जीतता है और पहला बिना चेतावनी के खो जाता है।
अंदाज़ा लगाकर। संख्या जैसा दिखने वाला मान JSON संख्या बन जाता है, true और false बूलियन बनते हैं, ख़ाली फ़ील्ड null बनते हैं, और बाक़ी सब स्ट्रिंग रहता है। tab-separated फ़ाइल कोई टाइप ढोती ही नहीं, इसलिए अंदाज़ा ही इकलौता उपलब्ध तरीक़ा है।
यही वजह है कि कोई कोड या पिन-कोड वाला कॉलम कभी-कभी संख्या बन जाता है। 00123 पढ़ा जाकर 123 बनता है और 1e5 लिखा हुआ मान 100000 बन जाता है, इसलिए ऐसे किसी कॉलम को नतीजे में जाँच लीजिए, भरोसा करने से पहले।
हेडर पंक्ति कुँजी तय करती है, इसलिए बची हुई अतिरिक्त वैल्यू को अपना नाम नहीं मिलता। वे एक अतिरिक्त कुँजी, `__parsed_extra`, में उसी क्रम में जमा हो जाती हैं जिससे कोई बेतरतीब फ़ाइल चुप रहने के बजाय साफ़ दिखे। हेडर से कम फ़ील्ड वाली पंक्तियों में वह कुँजी बिल्कुल नहीं होती।
नहीं। दोनों फ़ॉर्मेट टेक्स्ट हैं, पार्सर और लिखने वाला दोनों इसी पन्ने की साधारण JavaScript है, और कोई अनुरोध फ़ाइल ढोता नहीं। आकार की इकलौती सीमा आपकी अपनी याददाश्त है।
| TSV | JSON | |
|---|---|---|
| पूरा नाम | Tab-Separated Values | JavaScript Object Notation |
| फ़ाइल एक्सटेंशन | .tsv, .tab | .json |
| मीडिया टाइप | text/tab-separated-values | application/json |
| पहली बार प्रकाशित | 1993 | 2001 |
| विनिर्देश | IANA text/tab-separated-values | RFC 8259 |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | हर ब्राउज़र |
| इसकी जगह विचारणीय | CSV | XML, YAML, NDJSON |
कुछ नहीं खोता। TSV और JSON — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।
JSON को हर मौजूदा ब्राउज़र खोल लेता है। TSV को इतने भी नहीं। अगर फ़ाइल किसी वेब पेज या किसी फ़ॉर्म तक जा रही है, तो आम तौर पर इस कन्वर्ज़न की पूरी वजह यही है।
दोनों तरफ़ के प्रोग्राम अलग हैं: TSV फ़ाइल Microsoft Excel, LibreOffice Calc और pandas में खुलती है और JSON फ़ाइल Visual Studio Code, jq और Postman में — यानी नतीजा जिसके पास जाएगा, उसे दूसरी सूची में से कोई प्रोग्राम चाहिए होगा।
TSV 1993 में आया। यह IANA text/tab-separated-values में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
JSON 2001 से चला आ रहा है, और RFC 8259 में तय किया गया है। Visual Studio Code, jq और Postman इस फ़ॉर्मेट को पढ़ लेते है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
नहीं। JSON वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है।
कुछ नहीं खोता। TSV और JSON — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।