मेरे पास सीएसवी फाइलों का एक ढेर है जो मैं पार्स करना चाहता हूं - समस्या उद्धरण चिह्नों के रूप में उपयोग किए गए उद्धरण चिह्नों में से आधा है, और मुख्य क्षेत्र के अंदर अल्पविराम है। वे वास्तव में सीएसवी नहीं हैं, लेकिन उनके पास निश्चित फ़ील्ड हैं जो पहचाने जाने योग्य हैं। बोली = सीएसवी। "उत्कृष्टता" सेटिंग पूरी तरह से क्षेत्र के अंदर बाहर अतिरिक्त "के साथ फाइलों पर काम करता है और, वर्ण।फ़ील्ड के अंदर उद्धरण और अल्पविराम वर्णों के साथ सीएसवी फाइलें
इस डेटा वर्ष/असमर्थित है। मैं इस पर कुछ जीवन पुश करने के लिए कोशिश कर रहा हूँ।
जैसे
"AAAAA
AAAA
AAAA
AAAA","AAAAAAAA
AAAAAA
AAAAA "AAAAAA" AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA, AAAAA
AAAAAAAAA AAAAA AAAAAAAAAA
AAAAA, "AAAAA", AAAAAAAAA
AAAAAAAA AAAAAAAA
AAAAAAA
"
इस फ़ाइल पार्सर ट्रिपिंग जाता है, और एक त्रुटि _csv.Error: newline inside string
फेंकता है। मैं इसे नीचे इस किया जा रहा है इस मुद्दे को 2 क्षेत्र के अंदर से उद्धरण चिह्न निकाल कर narrrowed और csv.reader मॉड्यूल फ़ाइल ठीक से पार्स
इनमें से कुछ खेतों में बहु रेखा है - मुझे यकीन नहीं है कि यह जानना महत्वपूर्ण है या नहीं।
मैं बोली सेटिंग में चारों ओर घूम रहा हूं, और जब भी मैं 'skipinitialspace' पा सकता हूं, यह समस्या को हल नहीं करता है।
स्पष्ट है -। यह वैध 'CSV' नहीं, अपने डेटा वस्तुओं है कि शिथिल क्षेत्र परीक्षण के अंदर एक सीएसवी संरचना वर्ण पालन करें, लेकिन है, और "है
lineterminator \ x0d \ x0a
हैमैं एक नंबर की कोशिश की है doublequote के differnt permuations और बोली मॉड्यूल में के हवाले से चर पर चला जाता है की है, लेकिन मैं यह सही ढंग से पार्स नहीं मिल सकता है।
मुझे विश्वास नहीं किया जा सकता है कि एक, "या", संयोजन केवल क्षेत्र सीमाओं पर मौजूद है।
यह समस्या केवल फ़ाइल में कई फ़ील्ड के एक (अंतिम) के लिए मौजूद है, और कई हजार फ़ाइलें हैं।
उचित सीएसवी लगातार दो उद्धरण वर्ण का उपयोग करता है ('" "') एक उद्धृत क्षेत्र में एक उद्धरण कैरेक्टर से बचने के लिए। वैकल्पिक रूप से, क्षेत्र को निर्विवाद किया जा सकता है और कोई भाग्य निरंतर नहीं है, हालांकि अल्पविराम और न्यूलाइन इस तरह के क्षेत्र में प्रकट नहीं हो सकते हैं। इस तरह के एकल उद्धरण सामान्य रूप से मान्य नहीं हैं। क्या अधिकांश सीएसवी पाठकों (पायथन सहित) की अपेक्षाओं के अनुरूप बेहतर रूप से आपके सीएसवी डेटा के स्रोत के विकल्पों को संशोधित करना संभव है। – SingleNegationElimination
मुझे डेटा विरासत में मिला - और इसमें बहुत कुछ है ... तो मैं एक पार्सर बनाने के अलावा कुछ भी नहीं कर सकता जो इसे फिर से अलग कर सकता है। –
फाइलें क्षतिग्रस्त नहीं हैं, इसकी खराब/खराब रूप से एक सीएसवी के रूप में संरचित है।"मुझे डेटा विरासत में मिला" सटीक 'बहाना' है - बस यही होता है। डेटा पुराना/त्याग दिया गया है, और मैं इसे पुनरुत्थान करना चाहता हूं। –