【问题标题】:how to render data from postgresql to csv in python flask app?如何在 python 烧瓶应用程序中将数据从 postgresql 渲染到 csv?
【发布时间】:2019-07-19 18:34:47
【问题描述】:

我是 python 新手,正在尝试在其中编写代码。我正在尝试运行选择查询,但无法将数据呈现到 csv 文件?

这是 psql 查询:

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

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

谢谢你, 维卡斯

【问题讨论】:

  • 嗨。您应该首先阅读一些有关如何使用 python 访问 postgresql 的在线教程。尝试实施在线可用教程中的步骤。如果您遇到特定问题,请随时提问。照原样,这个问题太宽泛/没有 MVCE/没有尝试回答。您可能还想阅读how to ask

标签: python mysql sql python-3.x python-2.7


【解决方案1】:
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 以供使用,它应该可以工作。

【讨论】:

    【解决方案2】:

    通过pip install psycopg2 安装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)
    
    cur.close()
    
    conn.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      相关资源
      最近更新 更多