Проблемы с импортом CSV-файла в sqlite3 с использованием Python 3 - PullRequest
1 голос
/ 29 апреля 2019

Я пробовал это , и у меня проблемы с тем, чтобы заставить его работать.Первоначально у меня были проблемы с UTF-декодированием документа, поэтому я добавил ошибки = 'игнорировать часть.Теперь я нахожусь в pont, где у меня есть ошибка синтаксиса 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

Что я здесь не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...