Python 3.x 使用python 3将.csv文件导入sqlite3时出现问题

Python 3.x 使用python 3将.csv文件导入sqlite3时出现问题,python-3.x,csv,sqlite,executemany,Python 3.x,Csv,Sqlite,Executemany,我已经试过了,但我很难让它发挥作用。我最初对文档的utf解码有问题,所以我添加了错误部分。现在我在一个桥上遇到了一个sqlite3语法错误。我的占位符数量与列的数量相同(我知道有很多列。我正在尝试将它们全部放入数据库中,以便以合理的方式将其中一些列放在一起) 这是我的密码 import csv, sqlite3 con = sqlite3.connect("4x4orce.db") cur = con.cursor() cur.execute("""CREATE TABLE t (Premie

我已经试过了,但我很难让它发挥作用。我最初对文档的utf解码有问题,所以我添加了错误部分。现在我在一个桥上遇到了一个sqlite3语法错误。我的占位符数量与列的数量相同(我知道有很多列。我正在尝试将它们全部放入数据库中,以便以合理的方式将其中一些列放在一起)

这是我的密码

import csv, sqlite3

con = sqlite3.connect("4x4orce.db")
cur = con.cursor()
cur.execute("""CREATE TABLE t (Premier Part Number, Long Description, External Long Description, Upc, USA, Item, 
Availability, Canada Item Availability, Core Charge, Customer Price, Jobber, MAP, Retail, Inventory Status, Brand, 
Mfg Part Number, UT whse, KY whse, TX whse, CA whse, WA whse, ImageURL, ShipsLTL, ItemWithCores, Cust CAD Price, 
Proposition 65 Carcinogen, Proposition 65 Reproductive Harm)""")  # use your column names here

with open('python/4x4orce/premier_data_feed_4x4orce.csv', 'r', errors='ignore') as fin:
    # `with` statement available in 2.5+
    # csv.DictReader uses first line in file for column headings by default
    dr = csv.DictReader(fin)  # comma is default delimiter
    to_db = [(i['Premier Part Number'], i['Long Description'], i['External Long Description'], i['Upc'],
            i['USA Item Availability'], i['Canada Item Availability'], i['Core Charge'], i['Customer Price'],
            i['Jobber'], i['MAP'], i['Retail'], i['Inventory Status'], i['Brand'], i['Mfg Part Number'], i['UT whse'],
            i['KY whse'], i['TX whse'], i['CA whse'], i['WA whse'], i['ImageURL'], i['ShipsLTL'], i['ItemWithCores'],
            i['Customer CAD Price'], i['Proposition 65 Carcinogen'], i['Proposition 65 Reproductive Harm']) for i in dr]

cur.executemany("""INSERT INTO t (Premier Part Number, Long Description, External Long Description, Upc, USA, Item, 
                Availability, Canada Item Availability, Core Charge, Customer Price, Jobber, MAP, Retail, 
                Inventory Status, Brand, Mfg Part Number, UT whse, KY whse, TX whse, CA whse, WA whse, ImageURL, 
                ShipsLTL, ItemWithCores, Cust CAD Price, Proposition 65 Carcinogen, Proposition 65 Reproductive Harm) 
                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""", to_db)
con.commit()
con.close()
下面是我得到的错误:

Traceback (most recent call last):
  File "/Users/mwhites/programming/python/4x4orce/ImportCSV.py", line 8, in <module>
    Proposition 65 Carcinogen, Proposition 65 Reproductive Harm)""")  # use your column names here
sqlite3.OperationalError: near "65": syntax error

Process finished with exit code 1
回溯(最近一次呼叫最后一次):
文件“/Users/mwhites/programming/python/4x4orce/importsv.py”,第8行,在
“65号提案致癌物,65号提案生殖危害)”)#请在此处填写您的列名
sqlite3.error:接近“65”:语法错误
进程已完成,退出代码为1

我做错了什么?

如果要在列名(eww)中包含空格,则必须将名称用双引号引起来进行转义。如果要在列名(eww)中包含空格,则必须将名称用双引号引起来进行转义。