【问题标题】:pyodbc insert matrix into sqlpyodbc 将矩阵插入 sql
【发布时间】:2018-12-18 17:59:18
【问题描述】:

我在 python 中有一个名为 ID_Mat 的矩阵。该矩阵由 col = 12 和 row = 288 组成

我正在尝试将此矩阵插入到 SQL Server 的表中。我已经在 SQL 中创建了表,它被称为 project.mytable 并且每个列的名称都像'value1','value2'......它是空的

我错过了什么?

for col,row in ID_Mat():
cursor.execute("INSERT INTO 
project.mytable([value1],[value2],[value3],[value4],[value5],[value6],[value7],[value8],[value9],[value10],[value11],[value12]) values ('pyodbc', 'ID_Mat')")
cursor.commit()
cursor.close()
cnxn.close()

【问题讨论】:

  • 为什么要将 DB-API 的名称 'pyodbc' 和矩阵的名称 'ID_Mat' 插入到表中?
  • edit您的问题更具体。你说的是numpy.matrix吗?如果是这样,则相应地标记问题。

标签: python sql-server matrix pyodbc


【解决方案1】:
for row, col in matrix:    
    sql = ("""INSERT INTO mytable (value1, value2, value3, value4, value5, 
    value6, value7, value8...)
            VALUES (%s, %s, %s, %s, %s, %s, %s, %s)""")
    parameter_query = (row, col,...)
    cursor.execute(sql, parameter_query)
    conn.commit()

尝试做类似的事情 1.创建你的连接和光标 2.创建你的sql语句 3.创建您的参数化值 4.用sql语句和参数值的元组调用cursor.execute 5.提交连接。 如果您在 for 循环中执行此操作,请不要关闭 for 循环中的连接或光标。你需要打开它。要么使用 finally 语句,要么使用 with 语句。

【讨论】:

  • 但是我如何引用以便它从 ID_Mat 获取值?
  • 我不明白您要做什么,但是如果您要问如何传入行列...对于矩阵中的行,列:parameter_query(row,col)
  • 是的,这就是我想要做的。非常感谢你的帮助。我按照你的语法,我得到: ValueError: too many values to unpack (expected 2)
  • sql = ("""INSERT INTO mytable ([value1, value2...., value12) VALUES (%s, %s, %s, %s, %s, %s, % s, %s, %s, %s, %s, %s)""") for row, col in table: parameter_query(row,col) cursor.execute(sql, parameter_query) cursor.commit() cursor.close () cnxn.close()
  • 对于您插入的每个值,您都需要使用它们构建参数。这与您传递参数但没有足够的参数是一样的。
猜你喜欢
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
相关资源
最近更新 更多