2012-05-09 6 views
11

यहाँ मैं वर्तमान में क्या है:पायथन में एसएसवी को एसक्यूलाइट को सूची के रूप में प्रारूपित किए बिना निर्यात करने के लिए कैसे?

conn = sqlite3.connect(dbfile) 
conn.text_factory = str ## my current (failed) attempt to resolve this 
cur = conn.cursor() 
data = cur.execute("SELECT * FROM mytable") 

f = open('output.csv', 'w') 
print >> f, "Column1, Column2, Column3, Etc." 
for row in data: 
    print >> f, row 
f.close() 

यह एक सीएसवी उत्पादन है कि इस तरह दिखता है के साथ फ़ाइल बनाता है:

Column1, Column2, Column3, Etc. 
(1, u'2011-05-05 23:42:29',298776684,1448052234,463564768,-1130996322, None, u'2011-05-06 04:44:41') 

मैं पंक्तियों कोष्ठक में होना है और न ही उद्धरण के लिए और न ही नहीं करना चाहते हैं तारों से पहले 'यू'। सीएसवी को पंक्तियों को लिखने के लिए मैं इसे कैसे प्राप्त करूं? धन्यवाद,

उत्तर

21

जो आप वर्तमान में कर रहे हैं वह ट्यूपल के पायथन स्ट्रिंग प्रस्तुति को प्रिंट कर रहा है, यानी str(row) का वापसी मूल्य। इसमें उद्धरण और 'यू और ब्रांड्स और अन्य शामिल हैं।

इसके बजाय, आप एक CSV फ़ाइल के लिए डेटा स्वरूपित करना चाहते हैं। खैर, csv module आज़माएं। यह जानता है कि CSV फ़ाइलों के लिए चीजों को प्रारूपित करने के लिए, आश्चर्यजनक रूप से पर्याप्त है।

with open('output.csv', 'wb') as f: 
    writer = csv.writer(f) 
    writer.writerow(['Column 1', 'Column 2', ...]) 
    writer.writerows(data) 
+0

ऐसा हुआ, धन्यवाद! – Dan

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

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