2011-07-26 25 views
0

我在寫這個小代碼,它是我的Django應用程序的一部分。它應該從數據庫表(MySql)中獲取數據並創建一個csv文件。可能是我得到的一個非常簡單的錯誤,但我無法解決它。使用python將數據庫添加到django中的csv

的文件的名稱:write_to_csv.py

import csv 
def createCSV(): 
    from django.db import connection, transaction 
    cursor = connection.cursor() 
    cursor.execute("select * from avg_max_min;") 
    csv_writer = csv.writer(open("out.csv", "wt"), delimiter=',') 
    csv_writer.writerow([i[0] for i in cursor.description]) # write headers 
    csv_writer.writerows(cursor) 
    del csv_writer # this will close the CSV file 

錯誤
異常值:
'模塊' 對象有沒有屬性 '作家'
異常位置:C:\ Python26 \ Lib文件\ site-packages \ django \ bin \ report \ src \ report .. \ report \ report_view \ write_to_csv.py createCSV,line 6

+0

如果你去到一個Django殼做: '進口csv' 其次 'csv.writer' 它說什麼了? – mgalgs

+0

輸入「help」,「copyright」,「credits」或「license」以獲取更多信息。 (InteractiveConsole) >>>導入CSV >>> csv.writer <內置函數作家> >>> csv.writer(開( 「out.csv」, 「WB」)) <_csv。編寫器對象在0x014E2990> – Compuser7

+1

那裏你有它...必須是你的代碼中的其他東西。如果你把整個事情放在某個地方,你可能會得到更好的幫助。 – mgalgs

回答

2

open的第二個參數應該是wb不是wt。除此之外,它看起來像你正在做的一切正確。

如果它仍然無法正常工作,您可以使用dir(csv)的結果更新您的問題嗎? (這很可能是您的Python發行版中安裝了其他模塊或與write_to_csv.py具有相同名稱的目錄)。

+0

我嘗試了第一次,並沒有工作。請詳細說明dir(csv)..我不理解它。另外,我確定我沒有任何文件名爲write_to_csv.py,除此之外。 – Compuser7

+0

@ Compuser7 - 「dir」僅提供模塊中公開可用的內容。我懷疑你在同一個地方有一些其他的文件,'write_to_csv.py'被命名爲'csv.py' - 要麼,或者你有另一個名爲csv的模塊隱藏內置模塊(但顯然只在你的運行中) –

+0

>>> dir(csv) ['方言','DictReader','DictWriter','錯誤','QUOTE_ALL','QUOTE_MINIMAL',' QUOTE_NONE' ,'QUOTE_NONNUMERIC','Sniffer','StringIO','_Dialect','__all__',' __builtins__','__doc__','__file__','__name__','__package__','__version__', 'excel' ,'excel_tab','field_size_limit','get_dialect','list_dialects','re', 'reader','reduce','register_dialect','unregister_dialect','writer'] – Compuser7

1

我猜這是一個設置問題(類似於this)。確保你沒有一個名爲csv.py的文件或其他一些可以「隱藏」python的csv模塊的怪異文件。

相關問題