python - python 中用于 psycopg2 连接的长查询的 SQL 格式化示例

标签 python sql postgresql psycopg2

我通常使用 Pandas 来查看和处理数据,这是我所熟悉的。

如果我使用 psycopg2 模块从 postgres 数据库中提取数据,我会将 SQL 查询放在一个 python 文件中,但如果它是一个复杂的查询,它会在屏幕外的一行中扩展。

有没有办法在 python 中获取带有换行符的 sql 查询?即某种使 python 忽略空格的特殊字符包装器?

这个

sql = SELECT devices.id, devices.names, devices.addresses, devices.charging, devices.covered, record_temperatures.time
FROM devices
WHERE devices.imei like '%0444258';

df = pd.read_sql_query(sql, con=conn) 

不是这个

sql = SELECT devices.id, devices.names, devices.addresses, devices.charging, devices.covered, record_temperatures.time FROM devices WHERE devices.imei like '%0444258';

df = pd.read_sql_query(sql, con=conn) 

最佳答案

你可以像下面这样使用反斜杠:

sql = "SELECT devices.id, devices.names, devices.addresses,\
devices.charging, devices.covered, record_temperatures.time \
FROM devices \
WHERE devices.imei like '%0444258'";

或者你也可以使用三重引号:

sql = """SELECT devices.id, devices.names, devices.addresses,  
devices.charging, devices.covered, record_temperatures.time
FROM devices
WHERE devices.imei like '%0444258';
"""

关于python - python 中用于 psycopg2 连接的长查询的 SQL 格式化示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36803774/

相关文章:

python - 列表理解和 len() 与简单的 for 循环

coding-style - 使用属性以 Python 方式限制属性访问

sql - 如何在两个日期和月份而不是年份之间获取记录?

node.js - Node Postgres Docker

ruby-on-rails - 将间隔超过 30 分钟的记录分组

postgresql - postgresql 服务器启动时,postgresql 中是否有任何系统表自动更新?

python - Matplotlib:为多个 twinx() 轴上色

sql - 在 Oracle 中按名称验证星期几

mysql - SQL - 带有优先级过滤器的 SELECT 查询

python - 如何在 django_filters 中使用 ModelMultipleChoiceFilter 和 JSONfield