SQLite执行命令的语法错误无效

时间:2016-05-08 23:48:41

标签: python json sqlite

我有以下python 3代码:

import sqlite3
import json

conn = sqlite3.connect('data.db')
c = conn.cursor()

types = json.load(open('marketTypes.json'))

for data in types['items']:
    c.execute('INSERT INTO marketTypes (id, name, href) VALUES (?, ?, ?)', 
            (data['id_str'], data['type']['name'], data['type']['href'])

conn.commit()
conn.close()

已经使用marketTypes表和3个字段创建了数据库; id,name和href。

json文件看起来像这样,前两个字段是,它是一个很长的文件。

{'items': [{'id': 18,
        'id_str': '18',
        'marketGroup': {'href': 'https://crest-tq.eveonline.com/market/groups/516/',
                        'id': 516,
                        'id_str': '516'},
        'type': {'href': 'https://crest-tq.eveonline.com/types/18/',
                 'icon': {'href': 'http://imageserver.eveonline.com/Type/18_64.png'},
                 'id': 18,
                 'id_str': '18',
                 'name': 'Plagioclase'}},
       {'id': 19,
        'id_str': '19',
        'marketGroup': {'href': 'https://crest-tq.eveonline.com/market/groups/517/',
                        'id': 517,
                        'id_str': '517'},
        'type': {'href': 'https://crest-tq.eveonline.com/types/19/',
                 'icon': {'href': 'http://imageserver.eveonline.com/Type/19_64.png'},
                 'id': 19,
                 'id_str': '19',
                 'name': 'Spodumain'}},

当我运行python文件时,我得到:

File "sqlite.py", line 13
conn.commit()
   ^
SyntaxError: invalid syntax

有关如何解决问题的任何想法?如果标题不具体/有帮助,我道歉。

感谢。

1 个答案:

答案 0 :(得分:2)

你有一个未闭合的括号:

console.log(this);

以更简单的形式,这是c.execute('INSERT INTO marketTypes (id, name, href) VALUES (?, ?, ?)', ^ (data['id_str'], data['type']['name'], data['type']['href']) 。请注意,c.execute(query, (data)中的括号未关闭。

相反,它应该是:

c.execute(