मैं CSV.table
के साथ कुछ परीक्षण कर रहा हूं। मेरे पास दो छोटी और लगभग समान सीएसवी फाइलें हैं, हालांकि एक में हेडर पंक्ति गुम है।रूबी 1.9.3 - CSV.table कैसे सीएसवी फ़ाइल में कोई हेडर नहीं हैं?
जब मैं हेडर पंक्ति के साथ CSV फ़ाइल के विरुद्ध CSV.table
चलाता हूं, तो सब कुछ अपेक्षित काम करता है।
जब मैं शीर्ष लेख पंक्ति के बिना CSV फ़ाइल के खिलाफ इसे चलाने मैं:
NoMethodError: undefined method `encode' for nil:NilClass
मैं विभिन्न प्रकार के डेटा के साथ इस की कोशिश की, हेडर के विभिन्न प्रकार के साथ, और एक ही परिणाम प्राप्त।
मैं CSV.table
के जादू के लिए उत्सुक हूं। यदि मैं CSV.parse
का उपयोग हेडर सेट पर सत्य के साथ करता हूं, तो यह हमेशा पहली पंक्ति हेडर बनता है चाहे कोई फर्क नहीं पड़ता। इसलिए, मैं यह जांचने के लिए CSV.table
का उपयोग कर रहा हूं कि एक CSV फ़ाइल आयात की जा रही है या नहीं, लेकिन मैं इसके साथ बहुत सहज नहीं हूं क्योंकि मुझे समझ में नहीं आता है कि मैं इसका उपयोग कर रहा हूं या नहीं।
begin
CSV.table(csv_file_path)
rescue
# Add error to log or something.
end
क्या किसी को पता है?
पीएस मैंने पहले ही इस विधि को पढ़ा है और यह प्रत्येक कोड पर प्रदान किया गया स्रोत कोड - http://www.ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html
धन्यवाद @ एंडी-एच मुझे एक समान स्थिति थी जब मैं 'सामग्री = CSV.open "languages.csv" चलाता हूं, हेडर: सत्य, header_converters:: प्रतीक' मुझे यह त्रुटि मिली: 'शून्य के लिए अपरिभाषित विधि 'एन्कोड' : NilClass (NoMethodError) '। यह 'header_converter:: प्रतीक' विधि के बारे में शिकायत कर रहा है। "Languages.csv" फ़ाइल की समीक्षा करने के बाद मैंने पाया कि यह हेडर एक स्पेस के साथ शुरू होता है। उस स्थान को हटाकर उस मुद्दे को हल किया गया। – egyamado
** सुधार। ** मेरा मतलब था कि मुझे पहली पंक्ति '', नाम, पता, .... 'पर एक स्थान नहीं मिला था, "जब मैंने अंतरिक्ष, जैसे नाम, पता, ...." मैं अपना कोड चलाने में सक्षम था। – egyamado