python - postgresql 数据库查询后 python 脚本输出中存在未知空格

标签 python postgresql python-2.x psycopg2

我正在尝试使用 psycopg2 从 postgresql 数据库执行查询,但我的问题是我得到的输出包含未知空格,

这是我的代码:

#!/usr/bin/python2.6
import pyscopg2
import datetime
import sys

list_site_id = []
if sys.argv[3] == '-site':
    for i in sys.argv[4:]:
         list_site_id.append(i)
else:
    print "Wrong parameter"

start_date_time = str(datetime.datetime.fromtimestamp(int(sys.argv[1])//1000.0))
end_date_time = str(datetime.datetime.fromtimestamp(int(sys.argv[2])//1000.0))

query = """
SELECT site,cnetworkdate,count(size) as active_al,new_al_name
FROM al_history
WHERE status="OLD" and group_al="PAN" and cnetworkdate >= %s and cnetworkdate >= %s and site = %s

conn = psycopg2.connect(database = "le_database", user = "le_user", password = "le_password"

cur = conn.cur()

for site_id in list_site_id:
    cur.execute(query,(start_date_time, end_date_time, site_id))
    rows = cur.fetchall()
    print "SITEID;TIMESTAMP;ACTIVE-ALARMS;REMARK
    for row in rows:
        print row[0],";",row[1],";",row[2],";",row[3]

conn.close()

我得到了什么;

output contains spaces

我需要什么;

SITEID;TIMESTAMP;ACTIVE-ALARMS;REMARK
LIPO;2017-05-02 21:29:31;1;LIPOME_1 down
LIPO;2017-05-02 21:29:31;1;LIPOME_3 down
LIPO;2017-05-02 21:29:31;1;LIPOME_2 down

我的问题是;

Unknown spaces coming out from the output

最佳答案

也许空格是已知的?尝试更改为

SELECT trim(site),trim(cnetworkdate),count(size) as active_al,trim(new_al_name)

要获取包含未知空格的行,请运行:

SELECT site,length(site),replace(site,' ','*') 
from al_history where length(site) > length(trim(site))

或其他列

关于python - postgresql 数据库查询后 python 脚本输出中存在未知空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43753773/

相关文章:

python - 在 2.4 上安装 Pip

python - 如何在python3中json.dumps字节对象

python - 读取 csv 文件,其中引号内包含两个双引号和换行符

c# - 如何在 IAsyncEnumerable 发射器函数中正确使用 NpgsqlTransaction?

java - 检查整数是否在 jsonb 列表中

sql - 按列按 3 组分组

python - 如果存在则调用 Python 方法

python - 通过命令行从 unittest.TestCase 运行单个测试 - 使用 ddt

python - 如何使用 Python 将目录从包递归复制到当前路径

具有条件的 Python Pandas : Self-join for running cumulative total,