检索列,使用 PYODBC 和 python 从 SQL 存储过程中为其分配一个变量,并且变量中没有 [ ] 或 ' '

问题描述 投票:0回答:1

这个网站在我学习 Python 的过程中对我很有帮助,在过去 3 天断断续续地解决这个问题之后,它打败了我,我敢打赌它很容易解决。下面的代码工作正常,因为它没有产生任何错误,除了它有一个烦人的问题而且我似乎无法找到解决它的办法,好的代码如下。

    import pyodbc
    conn = pyodbc.connect('{dsn connection}')
    cursor = conn.cursor()
    storedprocedure = "sql stored procedure retrieving all columns and adding one parameter ?"
    #taking a value from a previous column to pass into sql query
    params = idno 
    
    cursor.execute(storedprocedure, params)
    result = cursor.fetchall()
   
    column1 = [row[0] for row in result]    
    
    #Check result in variable
    print(column1)

你可以看到它的简单程序,但是当我打印 column1 时,这是 python 中的输出:

['Lawrence']

所以我自然可以使用

print(*column1, sep = '')

并得到这个输出,这是我想要的变量

Lawrence

问题是我如何在没有那些烦人的 [' '] 的情况下将该值放入变量中,这太令人沮丧了。然后我使用该变量并将代码放入 SQL 数据库中,然后运行所有工作的网络报告,但显然显示方括号,但仅针对从该查询中获取的信息,我从表单中获取的其他变量工作正常.我尝试了多种从数据库中检索信息的方法,它们都做同样的事情。

任何建议将不胜感激,因为我一直在谷歌搜索和测试各种东西但没有运气。

python-3.x variables stored-procedures pyodbc
1个回答
0
投票

SIGH 解决了这个问题,我发现它很简单,[' 和 '] 是自动填充的空格。因此,将我创建变量的方式更改为字符串并使用 strip 命令删除空格。我还将其更改为 cusor.fetchone,因为我发布的查询只会返回一个响应。

result = cursor.fetchone()

column1 = str(result[0]).strip()   

#Check result in variable
print(column1)

这带回了我现在在任何地方都不需要 [' 或 '] 的东西,希望这能帮助别人。

© www.soinside.com 2019 - 2024. All rights reserved.