Создаю таблицу через:
def init_db():
conn = sqlite3.connect('products.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
sku TEXT,
price REAL,
quantity INTEGER,
del INTEGER DEFAULT 0
)
''')
conn.commit()
conn.close()
Т.е. поле sku по идее имеет строковый тип. Далее я беру таблицу csv с товарами в которой sku это числа, загружаю в таблицу и вместо артикула 777777 получаю 777777.0
Пробовал преобразовывать насильно к строке перед записью в базу, не получается.
df = pd.read_csv('products.csv')
for index, row in df.iterrows():
if np.isnan(row['ID']):
continue
product_import = {
'id': int(row['ID']),
'name': str(row['Название товара']),
'sku': str(row['Артикул']),
'price': float(row['Цена']),
'quantity': int(row['Количество']),
}
В таблицу записи добавляю так:
def add_product_db(product):
conn = sqlite3.connect('products.db')
cursor = conn.cursor()
cursor.execute('''
INSERT INTO products (id, name, sku, price, quantity, del)
VALUES (?, ?, ?, ?, ?, ?)
'''product['id'], product['name'], product['sku'], product['price'], product['quantity'], 0))
conn.commit()
conn.close()
Как заставить sqlite не преобразовывать данные?