2012-02-29 8 views
8

मैं अजगर 2.6 का उपयोग कर रहा हूं। जबकि मैं एसक्यूएल सर्वर से क्वेरी परिणाम (सीएसवी प्रारूप में) को संसाधित करने के लिए एक पायथन प्रोग्राम लिख रहा था। मैंने पाया कि यह यूनिकोड का समर्थन नहीं करता है।क्या पायथन 3.1.3 सीएसवी मॉड्यूल में यूनिकोड का समर्थन करता है?

for row in csvReader: 
Error: line contains NULL byte 

मैं Ultraedit साथ एएनएसआई/ASCII स्वरूप में csv फ़ाइल सहेजने के बाद, कार्यक्रम ठीक चल रहा है:

जब मैं csv फ़ाइल के साथ कार्यक्रम चलाने के लिए, एक त्रुटि कह को poped।

मैं एन्कोडिंग विकल्प शामिल करने की कोशिश की है, लेकिन यह विफल रहा है:

csvReader = csv.reader(open(fname, mode='rb', encoding='unicode'), delimiter=',') 
TypeError: 'encoding' is an invalid keyword argument for this function 

csvReader = csv.reader(open(fname, mode='rb', encoding='utf-8'), delimiter=',') 
TypeError: 'encoding' is an invalid keyword argument for this function 

मुझे आश्चर्य है अगर अजगर 3 समर्थन इस यूनिकोड पढ़ने। यह मुझे बहुत काम बचा सकता है।

+0

तुम क्यों एसक्यूएल सीधे अजगर से नहीं पहुंच पा रहे हैं? – Kimvais

+0

पायथन 3.1.3 का 'खुला' * निश्चित रूप से * समर्थन करता है और 'एन्कोडिंग =' तर्क, इसलिए या तो आप पाइथन के एक अलग संस्करण का उपयोग कर रहे हैं, या आपने गलती से 'ओपन' फ़ंक्शन को ओवरराइट कर दिया है। –

+0

मैंने कहा कि मैं अजगर 2.6 का उपयोग कर रहा हूं। तो पाइथन 3.1.3 में यह समस्या नहीं होगी? – lamwaiman1988

उत्तर

6

पायथन 3 निश्चित रूप से यूनिकोड का समर्थन करता है। मेरा अनुमान है कि आपने पढ़ने के लिए CSV फ़ाइल खोले जाने पर गलत (या नहीं?) एन्कोडिंग निर्दिष्ट की है। देखें: http://docs.python.org/release/3.1.3/library/functions.html#open

और की तरह कुछ प्रयास करें:

reader = csv.reader(open("foo.csv", encoding="utf-8")) 

संपादित:

import codecs 
reader = csv.reader(codecs.open("foo.csv", encoding="utf-8")) 

हालांकि यदि आप: आप अजगर 2.6 का उपयोग कर रहे हैं, तो आप के साथ एक ही परिणाम प्राप्त कर सकते हैं 'शून्य बाइट्स प्राप्त कर रहे हैं, आपकी फ़ाइल को "utf-16" का उपयोग करके एन्कोड किया जा सकता है, इसलिए कोशिश करें कि अगर फ़ाइल utf-8 का उपयोग करके डीकोड नहीं किया जा सकता है।

+0

मैंने एन्कोडिंग निर्दिष्ट करने का प्रयास किया, लेकिन यह एक त्रुटि लौटा। कृपया मेरा संपादन जांचें। – lamwaiman1988

2

ऐसा ही एक सवाल पहले से ही Python CSV error: line contains NULL byte

उत्तर दिया जाता है इसके अलावा, के बजाय 'rb' मोड में खोलने के लिए प्रयास करें 'आरयू'

संबंधित मुद्दे