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

从Python中的数据库加载数据

从Python中的数据库加载数据,python,database,adodb,Python,Database,Adodb,我是python新手,正在尝试从数据库加载数据。代码运行时没有错误,但没有输出任何内容,即使我要求它在3个位置打印(作为检查它是否工作)。 这可能很简单,但我看不出问题所在——我非常感谢任何指点。谢谢 以下是代码(缩进正确,但该站点忽略了它): 你是怎么运作的?也许您应该尝试在末尾(类外部和根缩进处)定义一个main 您的第二个和第三个print语句看起来不错,这似乎表明您的代码没有到达它们。问题出在\uuuu init\uuuu()方法中。这里有一个解决方案: class LoadData:

我是python新手,正在尝试从数据库加载数据。代码运行时没有错误,但没有输出任何内容,即使我要求它在3个位置打印(作为检查它是否工作)。 这可能很简单,但我看不出问题所在——我非常感谢任何指点。谢谢

以下是代码(缩进正确,但该站点忽略了它):


你是怎么运作的?也许您应该尝试在末尾(类外部和根缩进处)定义一个main


您的第二个和第三个print语句看起来不错,这似乎表明您的代码没有到达它们。问题出在
\uuuu init\uuuu()方法中。这里有一个解决方案:

class LoadData:
    db = None
    def __init__(self):
        self.db='330_26112015.mdb'
        print self.db
        [self.EventCode, self.Easting, self.Northing] = self.import_db(self.db)
您的版本存在以下问题:

  • 本地变量和实例变量之间的混淆(打印
    db
    而不是
    self.db
    ),以及本地命名空间中的函数与实例方法之间的混淆(调用
    import\u db()
    而不是
    self.import\u db()
  • 关于
    self
    及其使用的混淆。实例方法(如您的
    import\u db()
    )自动将实例作为第一个参数获取,因此您不必传入它。事实上,调用
    self.import\u db(self,self.db)
    应该会给您一个错误,告诉您
    import\u db
    在需要两个参数时得到了三个参数(因为实例会自动添加到参数列表的开头)
  • 字符串和列表。变量
    self.db
    是一个字符串,因此引用
    self.db[0]
    是字符串
    “3”
    ,而不是数据库文件的名称(我认为这是您想要的)
  • 正在初始化为空字符串。这比铁壳更具风格,但最好使用
    None
    而不是空字符串来表示尚未分配变量;它更容易测试,也不容易出错

  • 谢谢:)我对代码进行了编辑,以便它能够到达第二个函数-这是“self”的问题。现在来看真正的问题:我已经尝试了许多连接MS Access数据库(.mdb)的方法&遇到错误,现在我正在尝试pyodbc:cnxn=pyodbc.connect('DRIVER={SQL Server};Server=localhost;PORT=1433;DATABASE='+file+';UID=;PWD='))这与许多教程中描述的相同,但显示错误:SQL Server不存在或拒绝访问。以前有人见过吗?可能是防火墙问题。显而易见,服务器可能未启动,或者对运行代码的IDE不可见
    def main():
       obj = LoadData()
       obj.import_db('somefile')
    
    class LoadData:
        db = None
        def __init__(self):
            self.db='330_26112015.mdb'
            print self.db
            [self.EventCode, self.Easting, self.Northing] = self.import_db(self.db)