2017-03-28 29 views
0

postgresqlのクエリ結果をcsvファイルに保存しようとしていますが、csvファイルにはヘッダーが不足している場合がありますが、クエリのすべての詳細が書き込まれます。ヘッダーとクエリをcsvに書き込む

import psycopg2 
import csv 

try: 
    conn = psycopg2.connect(database = '', user = '', host = '', password = '') 
except: 
    print ("I am unable to connect to the database") 

cursor = conn.cursor() 

query = """select * from""" 

cursor.execute(query) 

result = cursor.fetchall() 

with open("kiker.csv","wb") as csvfile: 
    writer = csv.DictWriter(csvfile, fieldnames = ["Builder", "Subdivision", "Spec", "Build", "Cancel", "Price", "Sq_Ft", "PPSF", "Realtor", "Project ID"], extrasaction = 'ignore') 
    writer.writeheader() 
    writer.writerow(result) 

print "Query 1 Created" 

エラー:

Traceback (most recent call last): 
    File "C:\\connecting.py", line 45, in <module> 
    writer.writerow(result) 
    File "C:\Python27\lib\csv.py", line 152, in writerow 
    return self.writer.writerow(self._dict_to_list(rowdict)) 
    File "C:\Python27\lib\csv.py", line 149, in _dict_to_list 
    return [rowdict.get(key, self.restval) for key in self.fieldnames] 
AttributeError: 'list' object has no attribute 'get' 

Iは、以下の両方の方法を試みたが、それらの両方は、PostgreSQLからヘッダ情報を含めることができません。

c = csv.writer(open("kiker.csv","wb")) 

for row in result: 
    c.writerow(row) 

fp = open("kiker.csv","wb") 
myFile = csv.writer(fp) 
myFile.writerows(result) 
fp.close() 

私はこれをどのように修正することができますか? https://docs.python.org/3.6/library/csv.html#writer-objects

+0

エラーが発生した部分は掲載されません。 –

+0

エラーに2行追加しました。 'writer.writerow(result)' –

答えて

1

私は状況を回避するためにパンダを使用:

0

DictWriterはdicts、ないタプルを期待しています。治療のように働いた。

関連する問題