【问题标题】:sqlite3.OperationalError: near "?": syntax error while trying to import data from csv into sqlitesqlite3.OperationalError:靠近“?”:尝试将数据从 csv 导入 sqlite 时出现语法错误
【发布时间】:2022-01-04 11:01:27
【问题描述】:

我正在尝试使用 python 将数据从 postgresql db 表传输到 sqlite 表。这是我的代码:

import sqlite3
import csv

connect = sqlite3.connect("server.db")
cursor = connect.cursor()

sql = """CREATE TABLE users (
        name TEXT,
        id INT,
        xp INT
        )"""

cursor.execute(sql)
connect.commit()

with open('users.csv', 'r', encoding="utf-8") as f:
    no_records = 0
    for row in f:
        cursor.execute(f"INSERT INTO users (?,?,?)", row.split(','))
        connect.commit()
        no_records += 1

connect.close()

但是当运行这个脚本时我得到 sqlite3.OperationalError: near "?": Syntax error:

Traceback (most recent call last):
  File "C:\Users\belog\sort_hat\cr.py", line 19, in <module>
    cursor.execute(f"INSERT INTO users (?,?,?)", row.split(','))
sqlite3.OperationalError: near "?": syntax error

如何解决?不使用 python 是否可以更轻松地导入数据?

【问题讨论】:

    标签: python sqlite csv import


    【解决方案1】:

    您的语法缺失VALUES

    INSERT INTO users VALUES(?,?,?)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 2019-02-07
      • 2020-02-06
      • 2019-01-12
      • 2014-05-17
      • 2021-10-19
      • 2018-07-27
      相关资源
      最近更新 更多