【问题标题】:Using pyodbc to import column name with non alphanumeric characters?使用 pyodbc 导入非字母数字字符的列名?
【发布时间】:2017-05-03 19:39:00
【问题描述】:

我目前正在尝试使用 pyodbc 将列从 Microsoft Access 读取到 python 中。其中一列有一个 + 号。我将如何选择该列,然后从该列打印一行。目前我的代码看起来像这样:

crsr.execute("select CompoundKey, Q1Mass, Q3Mass, +veDP, CE from Conditions")
for row in crsr:
    print("Q1 Mass: %.3f" % row.Q1Mass)

所以我希望能够导入 +veDP 然后打印该列的行。

【问题讨论】:

    标签: python python-3.x ms-access pyodbc


    【解决方案1】:

    让 Access SQL 处理对象名称中的空格和“有趣字符”的最常见方法是使用方括号,例如,

    crsr.execute("select CompoundKey, Q1Mass, Q3Mass, [+veDP] AS posDP, CE from Conditions")
    

    编辑:

    请注意,Access 允许我们为给定字段指定“标题”...

    ...当我们查看数据表视图中的表格时,该字段似乎被命名为 [+veDP] ...

    ...实际上字段名称实际上是 [posDP]。

    【讨论】:

    • 我试过了,得到了这个错误信息:crsr.execute("select [+veDP] as posDP from Conditions") pyodbc.Error: ('07002', '[07002] [Microsoft][ ODBC Microsoft Access 驱动程序] 参数太少。应为 1. (-3010) (SQLExecDirectW)')
    • print([x.column_name for x in crsr.columns("Conditions")])。您在列表中看到'+veDP' 吗?如果不是,那么它实际上不是列名。 (它可能是一列的标题。)
    • 谢谢!这有帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 2023-01-19
    • 2013-11-29
    • 2013-12-30
    • 1970-01-01
    • 2015-05-29
    • 2016-05-22
    相关资源
    最近更新 更多