SQL python 中针对 psycopg2 连接的长查询的格式化示例
SQL formatting examples for long queries in python for psycopg2 connections
通常我使用 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';
"""
通常我使用 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';
"""