如何修复使用 pymssql 插入 sql DB 的错误

Posted

技术标签:

【中文标题】如何修复使用 pymssql 插入 sql DB 的错误【英文标题】:How to fix error inserting into sql DB using pymssql 【发布时间】:2018-09-07 01:26:58 【问题描述】:

我正在编写一个函数,它将用 Python 中的 tweepy 提取的推文存储到数据库(SQL 服务器)中。我已经编写了以下代码以插入到 SQL DB 中

 conn = pymssql.connect(host,user,passwd,DB)
cursor = conn.cursor()


def insertTweet(user,text,image):
    query = "INSERT INTO [TWEETS].[dbo].[TWEET_INFO] ] 
    (username,text,image_url,approved)\
    values (user, text, image, 0)"
    cursor.execute(query)

这是一个非常简单的函数,它不应该真的给出错误,但我确实得到一个说 text 是无效的列名。 :

Traceback (most recent call last):
File "db_connect.py", line 35, in <module>
insertTweet(user,text,image)
File "db_connect.py", line 19, in insertTweet
cursor.execute(query)
File "src\pymssql.pyx", line 465, in pymssql.Cursor.execute
pymssql.ProgrammingError: (207, b"Invalid column name 'text'.DB-Lib error 
messag
e 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL 
Ser
ver\nDB-Lib error message 20018, severity 16:\nGeneral SQL Server error: 
Check m
essages from the SQL Server\n")

以下是数据库结构:

SELECT TOP 1000 [Id]
  ,[username]
  ,[text]
  ,[image_url]
  ,[approved]
  FROM [TWEETS].[dbo].[TWEET_INFO]

我不确定如何解决这个问题。我可以通过在 sql studio 中手动运行查询来添加

【问题讨论】:

【参考方案1】:

尝试这样做, 假设 conn 是您与数据库的连接

query = ("INSERT INTO  billed_items(item_name,billed_qty,price,item_bill_series) VALUES(%s,%s,%s,%s)")
c.execute(query,((name),(no),(price),(series))
conn.commit()

【讨论】:

成功了!我不知道为什么。我一直在使用我提到的格式。 对不起,以上没有用。

以上是关于如何修复使用 pymssql 插入 sql DB 的错误的主要内容,如果未能解决你的问题,请参考以下文章

python中pymssql如何向sql server插入数据 插入的值可以用变量替换

如何使用pymssql python插入但忽略相同的日期标签

使用 python pymssql 将二进制文件插入 MSSQL db (varbinary)

使用 pymssql 将文本文件批量插入 SQL Server

如何在列表pymssql中循环插入值?

无法将元组插入到 mssql db