在Python中从SQL中提取1列数据



我已经通过python连接到一个SQL数据库,并试图提取一列数据。然而,当我打印我提取的内容时,它会显示以下内容:

('A', )
('B', )
('C', )
('D', )

当我提取两列时,它会打印:

('A', 'a' )
('B', 'b')
('C', 'c')
('D', 'd')

有没有一种方法可以简单地获取第一列中的数据,而不需要额外的, ),甚至可以转换为数据帧,同时保留SQL中的列名?我已经找到了很多如何从SQL中提取数据的指南,但没有一本显示出作为数据帧操作和保留列名的能力。

要生成的代码:

import pyodbc
conn = pyodbc.connect(driver='{SQL Server}'
                      ,server = 'server'
                      ,database = 'db1'
                      ,trusted_connection=True
                      ,user='user')
cursor=conn.cursor()
cursor.execute(
        '''SELECT
                Column_One
                --,Column_Two
            FROM db1.table''')
for row in cursor.fetchall():
    print(row)

尝试

import pyodbc
conn = pyodbc.connect(driver='{SQL Server}'
                      ,server = 'server'
                      ,database = 'db1'
                      ,trusted_connection=True
                      ,user='user')
cursor=conn.cursor()
cursor.execute(
        '''SELECT
                Column_One
                --,Column_Two
            FROM db1.table''')
final_result = [list(i) for i in cursor.fetchall()]
from sqlalchemy import create_engine
import pymysql
def keyword_sql():
    try:
        db_connection_str = 'mysql+pymysql://user:password@server/database'
        db_connection = create_engine(db_connection_str)
        df = pd.read_sql('SELECT keyword, category FROM additional_data_dictionary', con=db_connection)
        return df
    except:
        print("mysql connection issue - ignoring the user input")
        sys.exit(1)

看看这是否有帮助,我不是在使用pyodbc,而是在使用"sqlalchemy"-该代码直接返回pandas数据帧

相关内容

  • 没有找到相关文章

最新更新