Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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_Sql Server_Pyodbc - Fatal编程技术网

Python 额外的“无”值从何而来?

Python 额外的“无”值从何而来?,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我试图编写一个小脚本,将数据从sql server数据库迁移到postgresql数据库 我使用pyodbc连接到sql server,并进行了一些测试查询。 现在为了更好的结构,我决定为每种数据库类型创建一个类,例如PGManger和MSSQLManager 从其各自的类调用同一查询而不是直接执行它会产生一个额外的值为“none”的行,我无法确定这是从何而来 该类的代码如下所示: import pyodbc class MSSQLManger: def __init__(self,

我试图编写一个小脚本,将数据从sql server数据库迁移到postgresql数据库

我使用pyodbc连接到sql server,并进行了一些测试查询。 现在为了更好的结构,我决定为每种数据库类型创建一个类,例如PGManger和MSSQLManager

从其各自的类调用同一查询而不是直接执行它会产生一个额外的值为“none”的行,我无法确定这是从何而来

该类的代码如下所示:

import pyodbc
class MSSQLManger:

    def __init__(self, connString):
        self.conn = pyodbc.connect(connString)
        self.cursor = self.conn.cursor()

    def getTableNames(self):
        cursor = self.cursor.execute("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'a%' 
                                      AND TABLE_TYPE = 'BASE TABLE';")
        rows = cursor.fetchall()
        for row in rows:
            print(row)
“主”脚本中的代码:

从mssql导入mssql管理器
msql=MSSQLManger(连接字符串)
打印(msql.getTableNames())
结果是:

('tab_name1', )

('tab_name2', )

...

('tab_nameX', )

None
现在,如果把整堂课都扔掉,一个也没有了,问题是,它从哪里开始?

只是不要打印它:

msql.getTableNames()

因为
getTableNames
返回
None
(默认情况下没有返回语句)。然后打印调用该方法的结果,当然,它会打印
None