हिन्दी

डेटा और स्प्रेडशीट · CSV क्लीनर

CSV डिलीमीटर डिटेक्शन कैसे काम करता है: अल्पविराम, अर्धविराम, टैब और पाइप

· यह काम किस प्रकार करता है

CAसवी डेटा-सफाई फ़ाइल स्वरूपों

एक अर्धविराम-सीमांकित पंक्ति तीन सही ढंग से अलग किए गए तालिका स्तंभ बन जाती है
मूल ToolAcre वेक्टर चित्रण

CSV फ़ाइल यह कभी नहीं बताती कि कौन सा वर्ण उसके फ़ील्ड को अलग करता है, इसलिए सॉफ़्टवेयर को अनुमान लगाना पड़ता है। यह पोस्ट बताती है कि डिलीमीटर सूँघना कैसे काम करता है, यह मुश्किल फ़ाइलों पर विफल क्यों होता है, और डिलीमीटर को कैसे स्पष्ट बनाया जाए।

एक फ़ाइल जो एक लंबे कॉलम के रूप में खुलती है - क्यों सीमांकक को CSV में कहीं भी संग्रहीत नहीं किया जाता है

एक डेटा विश्लेषक एक .csv निर्यात खोलता है और प्रत्येक पंक्ति पर एक लंबा फ़ील्ड देखता है। एक्सटेंशन पाठक को यह नहीं बताता है कि किस विभाजक का उपयोग किया गया था, और फ़ाइल में आमतौर पर कोई सीमांकक घोषणा नहीं होती है। अल्पविराम मानने वाला एक एप्लिकेशन अर्धविराम से अलग किए गए हेडर जैसे नाम, शहर, नोट्स को एक कॉलम के रूप में पढ़ेगा। मान बदलने से पहले, पूछें कि कौन सा वर्ण वास्तव में फ़ील्ड को विभाजित करता है और क्या आयातक के पास अपने अनुमान को ओवरराइड करने का कोई तरीका है।

चार समर्थित उम्मीदवार: अल्पविराम, अर्धविराम, टैब और पाइप

ToolAcre अल्पविराम, अर्धविराम, टैब और पाइप को उम्मीदवार मानता है। अर्धविराम आम है जब अल्पविराम पहले से ही दशमलव विभाजक के रूप में उपयोग किया जाता है, टैब सरल निर्यात में विराम चिह्न टकराव से बचते हैं, और पाइप कभी-कभी लॉग या डेटाबेस डंप को अलग करते हैं। टूल के स्वचालित विकल्पों में से एक स्थान नहीं है: नाम और मुक्त-पाठ कोशिकाओं में अक्सर रिक्त स्थान होते हैं। किसी उम्मीदवार को केवल इसलिए न जोड़ें क्योंकि यह नमूना पाठ में बार-बार आता है; एक विभाजक को पंक्तियों को सुसंगत फ़ील्ड में विभाजित करना होगा।

सूंघना कैसे काम करता है - प्रत्येक पंक्ति में उम्मीदवार के पात्रों की गिनती करना और उस पंक्ति को प्राथमिकता देना जो पंक्तियों में एक सुसंगत फ़ील्ड गणना देता है

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

जहां सूँघना विफल हो जाता है - अल्पविरामों से भरे मुक्त-पाठ कॉलम, एकल-स्तंभ फ़ाइलें और उद्धृत फ़ील्ड जो वास्तविक विभाजक को छिपाते हैं

कोई भी अनुमान अचूक नहीं है. एक बहुत ही छोटी फ़ाइल में बहुत कम सबूत होते हैं, वास्तव में एक-स्तंभ CSV में कोई उम्मीदवार नहीं होता है जो दो भागों में विभाजित हो जाता है, और विकृत उद्धरण कई उम्मीदवारों के विवरण को ख़राब बना सकता है। उद्धरण टूटने पर विभाजकों से भरा एक मुक्त-पाठ स्तंभ वास्तविक सीमांकक के साथ प्रतिस्पर्धा कर सकता है। पंक्तियों में मिश्रित विभाजक एक स्वच्छ CSV बोली नहीं हैं। टूल पार्सिंग चेतावनियों की रिपोर्ट करता है और मैन्युअल सीमांकक चयन को उजागर करता है; एक उपयोगकर्ता जो अपस्ट्रीम निर्यात सम्मेलन को जानता है वह अनुमानी विनिर्देश होने का दिखावा करने के बजाय अनुमानित विकल्प को ओवरराइड कर सकता है।

व्यावहारिक उदाहरण - पतों के अंदर अल्पविराम के साथ अर्धविराम से अलग किया गया निर्यात, यह दर्शाता है कि एक अनुभवहीन गिनती गलत वर्ण क्यों चुनती है

हेडर नाम;शहर;नोट और एक पंक्ति Ada;पेरिस;"स्टेशन के पास 10 पर बैठक" के साथ एक छोटा सा नमूना आज़माएं। कच्चे अल्पविरामों को गिनने से गलत तरीके से अल्पविराम का पक्ष लिया जा सकता है क्योंकि नोट में विराम चिह्न हैं, विशेष रूप से ऐसी कई पंक्तियों पर। अर्धविराम पार्सर दोनों पंक्तियों पर तीन फ़ील्ड लौटाता है; अल्पविराम पार्सर समान आयताकार संरचना प्रदान नहीं करता है। ट्रिमिंग, डीडुप्लिकेटिंग या निर्यात करने से पहले पुष्टि करें कि पूर्वावलोकन नाम, शहर और नोट को अलग-अलग कॉलम के रूप में दिखाता है। यदि एक स्रोत पंक्ति में कोई बंद उद्धरण नहीं है, तो स्कोर में सुधार करने के लिए उसे चुपचाप त्यागने के बजाय उस पंक्ति का निरीक्षण करें।

आउटपुट डिलीमीटर चुनना - विभाजक को प्रोग्राम और लोकेल से मेल करना जो फ़ाइल को आगे पढ़ेगा

इनपुट सेपरेटर और आउटपुट सेपरेटर अलग-अलग निर्णय हैं। आप एक यूरोपीय अर्धविराम फ़ाइल आयात कर सकते हैं लेकिन अल्पविराम की अपेक्षा रखने वाले प्रोग्राम के लिए RFC-शैली अल्पविराम से अलग किए गए पाठ को निर्यात कर सकते हैं। एक सही लेखक आउटपुट डिलीमीटर, एम्बेडेड उद्धरण या लाइन ब्रेक वाले फ़ील्ड को उद्धृत करता है। डाउनलोड करने से पहले तय करें कि आपके प्राप्तकर्ता को UTF-8 BOM की आवश्यकता है या नहीं; कुछ स्प्रेडशीट एप्लिकेशन एन्कोडिंग को पहचानने के लिए इसका उपयोग करते हैं जबकि कई पार्सर्स इसके बिना फ़ाइल चाहते हैं। डाउनलोड किए गए हेडर को केवल ब्राउज़र पूर्वावलोकन ही नहीं, बल्कि गंतव्य प्रोग्राम में भी जांचें।

इसमें क्या शामिल नहीं है - फ़ाइलें जो पंक्तियों के बीच सीमांकक को मिलाती हैं, और निश्चित-चौड़ाई वाले निर्यात जो बिल्कुल भी सीमांकक का उपयोग नहीं करते हैं

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

आशा करने के बजाय सीमांकक को स्पष्ट बनाएं - कैसे ToolAcre CSV क्लीनर की सीमांकक मरम्मत एक सुसंगत विभाजक के साथ एक फ़ाइल तैयार करती है

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