0

我知道如何使用 psycopg2、sqlalchemy、dask 在远程服务器中读取 PostgreSQL 表,但我对读取表的处理时间不满意,并开始研究更快的替代方案,我发现 asyncpg 比所有方法快 7 倍,但 asyncpg 的文档非常差与上面提到的库相比,那里有很多例子。

我的问题是:如何有效地读取 PostgreSQL 表?

我试过如下:

import asyncio
import asyncpg
import pandas as pd

from sshtunnel import SSHTunnelForwarder #Allow connection with SSH like PuttY connection
from sshtunnel import SSHTunnelForwarder, create_logger #Allow to follow the processes running

SSHTunnelForwarder(('IP_detail', Port_number),
        ssh_private_key=r'path_to_the_ssh_key_in_my_computer',

        ssh_username="username",
        #ssh_password="password", 
        remote_bind_address=('localhost', port_number),
        local_bind_address=('localhost', port_number),
        logger=create_logger(loglevel=1) #Makes processes being ran displayed
                           )

conn = await asyncpg.connect(user='username', password='password',
                                 database='database_name', host='127.0.0.1', port='port')


values = await conn.fetch('''SELECT * FROM table_name''')

values=pd.DataFrame(values)
values

使用上面的代码,我得到 PostgreSQL 表中每列的所有行值,但不显示列名,它显示列编号而不是它们的专有名称。如何纠正这个?

4

1 回答 1

1

用于dict(values)查看记录和有效负载的键值对

于 2020-03-20T15:52:42.440 回答