【问题标题】:Creating Python Module using pyodbc使用 pyodbc 创建 Python 模块
【发布时间】:2012-11-13 21:46:16
【问题描述】:

想要制作可以从数据库中获取数据的小型 python 模块。我已经下载了 pydbc,它工作得很好:

import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=MyDatabase;DATABASE=TestDB;UID='';PWD=''')
cursor = cnxn.cursor()
cursor.execute("select MeasurementValue from TAG_DATA where ItemID=10")
row = cursor.fetchone() 

现在我想把它放在一个模块中,这样我就可以导入它,我不需要每次都编写代码或定位文件。所以我试着像这样创建这个

import pyodbc
def testDB():
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=MyDatabase;DATABASE=TestDB;UID='';PWD=''')
    cursor = cnxn.cursor()
    cursor.execute("select MeasurementValue from TAG_DATA where ItemID=10")
    row = cursor.fetchone()    
return row 

我将它保存在:文件“C:\Python27\lib\site-packages\testDB.py”中,我尝试导入它,但出现此错误:SyntaxError: 'return' outside function

我对 python 很陌生,有什么想法可以把它作为一个模块并能够在每次我想运行该代码时使用 import 吗?

【问题讨论】:

  • 也许你有一个函数之外的返回。
  • 你的缩进搞砸了。
  • 附带说明,您可能想研究 sqlalchemy。

标签: python database wxpython pyodbc


【解决方案1】:

正如其中一位 cmets 所说,您的缩进搞砸了。空格(缩进)在 Python 中很重要。试试这样:

import pyodbc
def testDB():
    cnxn = pyodbc.connect("DRIVER={SQL Server};SERVER=MyDatabase;DATABASE=TestDB;UID='';PWD=''")
    cursor = cnxn.cursor()
    cursor.execute("select MeasurementValue from TAG_DATA where ItemID=10")
    row = cursor.fetchone()    
    return row

此外,您必须在连接字符串中使用双引号,因为您在字符串本身中使用单引号。我已经在上面更改了它们以反映这一点。

祝你好运, 迈克

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-02
    • 2021-03-29
    • 2012-04-03
    • 1970-01-01
    • 2012-01-09
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多