小编Bra*_*ell的帖子

使用sqlalchemy和pyodbc连接到SQL Server 2012

我正在尝试使用Python 3.3(Windows 7-64位)上的SQLAlchemy(使用pyodbc)连接到SQL Server 2012数据库.我能够使用直接pyodbc进行连接,但是在使用SQLAlchemy进行连接时却没有成功.我有数据库访问的dsn文件设置.

我使用这样的直接pyodbc成功连接:

con = pyodbc.connect('FILEDSN=c:\\users\\me\\mydbserver.dsn')
Run Code Online (Sandbox Code Playgroud)

对于sqlalchemy,我尝试过:

import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://c/users/me/mydbserver.dsn/mydbname')
Run Code Online (Sandbox Code Playgroud)

create_engine方法实际上并没有建立连接并且成功,但是如果我尝试了导致sqlalchemy实际设置连接的东西(比如engine.table_names()),它需要一段时间但是然后返回此错误:

DBAPIError: (Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)') None None

我不确定哪里出错是如何看到sqlalchemy实际传递给pyodbc的连接字符串.我已成功使用与SQLite和MySQL相同的sqlalchemy类.

提前致谢!

python sql-server sqlalchemy pyodbc

21
推荐指数
4
解决办法
6万
查看次数

从集合中删除NaN值

是否可以轻松删除Python Set对象的NaN值?鉴于NaN值不等于任何值(float('nan') is float('nan')也是False),您最终可以在Set中得到许多NaN值.

>>> a = set( (float('nan'), float('nan'), 'a') )
>>> a
{nan, nan, 'a'}
Run Code Online (Sandbox Code Playgroud)

最好的我可以用它来定义像math.isnan这样的函数,但是它可以容忍非浮点类型,例如:

def my_isnan(x):
    try:
        return math.isnan(x)
    except TypeError:
        return False
Run Code Online (Sandbox Code Playgroud)

然后你可以使用这样的集合理解:

>>> {x for x in a if not my_isnan(x)}
{'a'}
Run Code Online (Sandbox Code Playgroud)

python

12
推荐指数
2
解决办法
6428
查看次数

如何使用与其他DLR语言类似的API在ac#app中托管PowerShell 3.0

我一直在玩ac#app,主持IronPython,IronRuby和(希望)PowerShell.由于IronPython和IronRuby完全基于DLR构建,因此使用它们的API几乎完全相同.

IronPython.Hosting.Python.CreateEngine()
Run Code Online (Sandbox Code Playgroud)

IronRuby.Ruby.CreateEngine()
Run Code Online (Sandbox Code Playgroud)

两者都创建Microsoft.Scripting.Hosting.ScriptEngine的实例.有没有希望强制PowerShell 3.0创建ScriptEngine?我没有找到很多关于这个主题的内容,除了PowerShell 3.0似乎比以前的版本更多地建立在DLR 上(参见http://huddledmasses.org/powershell-3-finally-on-the-dlr.

您似乎无法将使用以下内容创建的PowerShell引擎强制转换为ScriptEngine.

System.Management.Automation.PowerShell.Create()
Run Code Online (Sandbox Code Playgroud)

我怀疑,如果我真的想通过相同的API处理PowerShell,我需要创建自己的包装PowerShell主机的ScriptEngine.

c# powershell dynamic-language-runtime powershell-3.0

8
推荐指数
1
解决办法
521
查看次数