Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中打印查询结果,包括列名_Python_Postgresql_Psycopg2 - Fatal编程技术网

如何在Python中打印查询结果,包括列名

如何在Python中打印查询结果,包括列名,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,打印PostgreSQL查询结果时,我只看到结果值,我希望看到列名和结果值 postgreSQL_select_Query = "SELECT epic,timestamp FROM market_data_historic s1 WHERE timestamp = (SELECT MAX(timestamp) FROM market_data_historic s2 WHERE s1.epic = s2.epic)" cursor.execute(postgreSQL_select_

打印PostgreSQL查询结果时,我只看到结果值,我希望看到列名和结果值

 postgreSQL_select_Query = "SELECT epic,timestamp FROM market_data_historic s1 WHERE timestamp = (SELECT MAX(timestamp) FROM market_data_historic s2 WHERE s1.epic = s2.epic)"
    cursor.execute(postgreSQL_select_Query)
    # Close the connection
    result=(cursor.fetchall())
    for row in result:
        print (row)
这是我得到的结果:

('CC.D.LCO.USS.IP', datetime.datetime(2019, 11, 13, 22, 0))
('IX.D.DAX.DAILY.IP', datetime.datetime(2019, 7, 23, 4, 0))
('KB.D.ELECTY.DAILY.IP', datetime.datetime(2020, 1, 24, 16, 0))
('CS.D.ALUMINIUM.TODAY.IP', datetime.datetime(2019, 7, 23, 1, 0))
('CS.D.NZDCAD.TODAY.IP', datetime.datetime(2020, 1, 24, 21, 0))
('CS.D.CADCNH.TODAY.IP', datetime.datetime(2020, 1, 16, 8, 0))
我怎样才能让它变成这样:

(epic:'CC.D.LCO.USS.IP',timestamp: datetime.datetime(2019, 11, 13, 22, 0))
(epic:'IX.D.DAX.DAILY.IP',timestamp: datetime.datetime(2019, 7, 23, 4, 0))
(epic:'KB.D.ELECTY.DAILY.IP',timestamp: datetime.datetime(2020, 1, 24, 16, 0))
(epic:'CS.D.ALUMINIUM.TODAY.IP',timestamp: datetime.datetime(2019, 7, 23, 1, 0))
(epic:'CS.D.NZDCAD.TODAY.IP',timestamp: datetime.datetime(2020, 1, 24, 21, 0))
(epic:'CS.D.CADCNH.TODAY.IP',timestamp: datetime.datetime(2020, 1, 16, 8, 0))
尝试
游标的属性

描述查询结果的只读属性。它是一系列
实例,每个实例按顺序描述一个结果列。对于不返回行的操作,或者如果游标尚未通过
execute*()
方法调用操作,则该属性为
None

为了与DB-API兼容,可以将每个对象解包为7项序列:以这种方式返回的属性如下所示。有关更多详细信息和其他可用属性,请查看
文档

  • name
    :返回的列的名称
  • 键入\u code
    :列的PostgreSQL OID
  • display\u size
    :以字节为单位的列的实际长度
  • internal_size
    :服务器上与此列关联的列的大小(以字节为单位)
  • 精度
    :类型为
    数值
    的列中有效位数的总数<代码>无用于其他类型
  • scale
    :在
    NUMERIC
    类型的列中小数部分的小数位数计数<代码>无用于其他类型
  • null\u ok
    :始终
    None
    ,因为不容易从libpq中检索
使用该属性检索列名并将结果转换为字典:

result = cursor.fetchall()
columns = [desc[0] for desc in cursor.description]
for row in result:
    print (dict(zip(columns, row)))
或者,您可以使用或

另见