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

问题描述 投票:0回答:1

我正在编写一个函数,将用tweepy在Python中提取的推文存储到数据库(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)

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

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")

以下是DB结构:

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

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

python sql-server pymssql
1个回答
2
投票

试试这样做, 假设conn是你与db的连接

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()
© www.soinside.com 2019 - 2024. All rights reserved.