2017-11-04 239 views
0

我正在从python API运行SQL查询,并且想要收集Structured(列标题下的数据)标题下的数据.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) 

现在正在打印控制台上的数据,但在.CSV没有得到文件这是我得到的output

什么,我很想念?

+1

您有什么问题? Python有'csv.writer'来将CSV写入文件,因此您只需将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

谢谢,@diek。只有一个问题,在获得数据内的所有内容之后。我们打开为'vehicle.csv',这个文件来自哪里以及它正在播放什么部分?我的意思是我们没有将数据写入'vehicle.csv'所以..? – Hayat

+0

@Hayat Python将创建该文件。它正在播放的角色是您的问题的答案,您想创建一个csv文件。 – diek

+0

@Hayat我在代码中添加了评论,希望这会帮助你理解。阅读本文将帮助您更好地理解 https://docs.python.org/3/tutorial/inputoutput.html – diek