如何在python flask app中将数据从postgresql渲染到csv?

问题描述 投票:-1回答:2

我是python的新手,并试图在其中编写代码。我试图运行一个选择查询,但我无法将数据呈现给csv文件?

这是psql查询:

# \copy (
# SELECT
# sr.imei,
# sensors.label,sr.created_at,
# sr.received_at,
# sr.type_id,
# 

但如何在python中编写它以将其呈现为csv文件?

感谢你,Vikas

python mysql sql python-3.x python-2.7
2个回答
0
投票
sql = "COPY (SELECT * FROM sensor_readings WHERE reading=blahblahblah) TO STDOUT WITH CSV DELIMITER ';'"
with open("/tmp/sensor_readings.csv", "w") as file:
    cur.copy_expert(sql, file)

我认为您只需要更改sql供您使用,它应该可以工作。


0
投票

通过psycopg2安装pip install psycopg2比你需要这样的东西

import csv
import psycopg2

query = """
        SELECT
        sr.imei,
        sensors.label,sr.created_at,
        sr.received_at,
        sr.type_id,
        sr.data FROM sensor_readings as sr LEFT JOIN sensors on sr.imei = sensors.imei
        WHERE sr.imei not like 'test%' AND sr.created_at > '2019-02-01'
        ORDER BY sr.received_at desc
    """

conn = psycopg2.connect(database="routing_template", user="postgres", host="localhost", password="xxxx")
cur = conn.cursor()
cur.execute(query)

with open('result.csv', 'w') as f:
    writer = csv.writer(f, delimiter=',')
    for row in cur.fetchall():
        writer.writerow(row)

conn.close()
© www.soinside.com 2019 - 2024. All rights reserved.