2017-11-04 13 views
0

私はPython APIからSQLクエリを実行しており、構造化された(列の下にあるデータをヘッダーに).CSV形式でデータを収集します。SQLクエリを.csvに出力

これまでのコードです。

sql = "SELECT id,author From researches WHERE id < 20 " 
cursor.execute(sql) 
data = cursor.fetchall() 
print (data) 
with open('metadata.csv', 'w', newline='') as f_handle: 
    writer = csv.writer(f_handle) 
    header = ['id', 'author'] 
    writer.writerow(header) 
    for row in data: 
     writer.writerow(row) 

は今、データがコンソールに印刷されたが、これは私が outputとして取得しています何のファイル.CSVになっていないされている:私は何をしないのですされていることを

?ここで

+1

あなたはどのような問題を持っていますか? PythonにはCSVをファイルに書き込む 'csv.writer'があるので、SQL結果をリストに読み込むだけです。 – Barmar

+0

あなたはこれまでに何を試しましたか? –

+0

問題は私がそれを行う方法を知らないということです。このクエリに基づいてサンプルコードを手助けできますか? – Hayat

答えて

0

は何をしようとするの簡単な例です:

import sqlite3 as db 
import csv 

# Run your query, the result is stored as `data` 
with db.connect('vehicles.db') as conn: 
    cur = conn.cursor() 
    sql = "SELECT make, style, color, plate FROM vehicle_vehicle" 
    cur.execute(sql) 
    data = cur.fetchall() 

# Create the csv file 
with open('vehicle.csv', 'w', newline='') as f_handle: 
    writer = csv.writer(f_handle) 
    # Add the header/column names 
    header = ['make', 'style', 'color', 'plate'] 
    writer.writerow(header) 
    # Iterate over `data` and write to the csv file 
    for row in data: 
     writer.writerow(row) 
+0

ありがとう、@ディーク。データ内のすべてを取得した後、ちょうど1つの質問。私たちは 'vehicle.csv'としてオープンしています。このファイルはどこから来ていますか、そして再生している部分はどこですか?私は 'vehicle.csv'にデータを書き込んでいないということですか? – Hayat

+0

@Hayat Pythonがファイルを作成します。それが果たしている役割はあなたの質問に対する答えです。あなたはcsvファイルを作りたいと思っています。 – diek

+0

@Hayatコードにコメントを追加しました。うまくいけば、これはあなたの理解を助けるでしょう。これを読んでください。 https://docs.python.org/3/tutorial/inputoutput.html – diek

関連する問題