OperationalError:near",":语法错误 - SQLITE3

时间:2018-02-16 09:56:45

标签: sql pandas sqlite jupyter

这是我的代码(来自" Python for Data Analysis" book):

import sqlite3

query = """ CREATE TABLE test (a VARCHAR(20), b VARCHAR(20)), c REAL, d INTEGER); """
con = sqlite3.connect('mydata.sqlite')
con.execute(query)

这是我得到的错误:

OperationalError                          Traceback (most recent call last)
<ipython-input-223-702795376e74> in <module>()
      1 con = sqlite3.connect('mydata.sqlite')
----> 2 con.execute(query)

OperationalError: near ",": syntax error

我尝试使用代码周围的单引号和三引号,检查逗号,但我无法弄清楚什么是错误的。

4 个答案:

答案 0 :(得分:2)

你检查括号了吗? 我可以看到3开(和4关)。 您似乎需要删除b VARCHAR(20))

的两个结账之一

答案 1 :(得分:1)

试试这个

query = "CREATE TABLE test (a VARCHAR(20), b VARCHAR(20), c REAL, d INTEGER)";

而不是你的

答案 2 :(得分:1)

始终统计您的括号,此处不需要三倍"

import sqlite3

query = " CREATE TABLE test (a VARCHAR(20), b VARCHAR(20), c REAL, d INTEGER); "
con = sqlite3.connect('mydata.sqlite')
con.execute(query)

答案 3 :(得分:1)

你正在使用熊猫 - 你不需要照顾&#34;创建表...&#34;的东西。熊猫为你做到了:

In [100]: df = pd.DataFrame(np.random.randint(5,size=(5,3)), columns=list('abc'))

In [101]: df
Out[101]:
   a  b  c
0  1  0  0
1  0  0  3
2  0  4  1
3  0  2  0
4  0  3  1

In [102]: conn = sqlite3.connect('c:/temp/test.sqlite')

In [103]: df.to_sql('test', conn, index=False)

In [104]: df2 = pd.read_sql('select * from test', conn)

In [105]: df2
Out[105]:
   a  b  c
0  1  0  0
1  0  0  3
2  0  4  1
3  0  2  0
4  0  3  1