首页 > 解决方案 > sqlite3.OperationalError:“警告”附近:python 2.7 中 sqlite3 中的语法错误

问题描述

我在 Windows7 中使用 python 2.7。我想用 sqlite 语句格式化字符串。

conn = sqlite3.connect('Static_Analysis.db')

c = conn.cursor()
c.execute('''CREATE TABLE MAIN
   (ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   Error_List          CHAR(50),
   Warning_List        CHAR(50),
   Advice_List         CHAR(50),
   Total          CHAR(50),
   Note           CHAR(50));''')

c.execute('''CREATE TABLE ERROR_REPORT
   (ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL);''')

c.execute('''CREATE TABLE WARNING_REPORT
   (ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL);''')

c.execute('''CREATE TABLE ADVICE_REPORT
   (ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL);''')


file = open("summary.log",'r')

p1 = re.compile(r"Error")
p2 = re.compile(r"Warning")
p3 = re.compile(r"Advice")

i = 1
m_i = 0
n_i = 0
p_i = 0
for line in file:

m = re.match(p1,line) 
n = re.match(p2,line)  
p = re.match(p3,line)
if m:
    m_i = m_i + 1
    str = line.split(":")
    conn.execute("INSERT INTO MAIN (ID,NAME,Error_List,Note) VALUES (%s, %s, 
%s, E%s)"  % (i, str[1], m_i, m_i))
    conn.execute("INSERT INTO ERROR_REPORT (ID,NAME) VALUES (%s, %s)" % (i, 
str[-1]))

当我运行此代码创建表并将数据从文件插入表时发生错误:

conn.execute("INSERT INTO MAIN (ID,NAME,Error_List,Note) VALUES (%s, %s, 
%s, E%s)"  % (i, str[1], m_i, m_i))
sqlite3.OperationalError: near "Warnings": syntax error

我该如何解决这个错误?我看到其他人收到此错误,因为他在代码中使用了与 sqlite 中的单词相同的单词。但就我而言,我的代码中没有警告。

标签: python-2.7

解决方案


推荐阅读