Python's SQLITE3 Creating Table (and Database) and Inserting Data

Опубликовано: 25 Март 2021
на канале: ZeroLife
44
1

import sqlite3

DFLT_path = 'C:/Desktop/mydatabase.db'
DFLT_table = 'mytable'
DFLT_data = {'name': "bob",'age':20,'address':'3 something st.'}

def db_give(db_name=DFLT_path, table=DFLT_table, data=DFLT_data):
table_data = []
for data_name in data:
if isinstance(data[data_name], str):
table_data.append(('TEXT',data_name,data[data_name]))
elif isinstance(data[data_name], int):
table_data.append(('INTERGER',data_name,data[data_name]))
elif isinstance(data[data_name], float):
table_data.append(('REAL',data_name,data[data_name]))
elif isinstance(data[data_name], (list,dict,set)):
table_data.append(('NUMERIC',data_name,str(data[data_name])))
else:
table_data.append(('BLOB',data_name,data[data_name]))

conn = sqlite3.connect(db_name)
cursor = conn.cursor()

with conn:
table = 'db' + str(table)
temp_str1 = []
for data_t, data_n, _ in table_data:
temp_str1.append(f'{data_n} {data_t} NOT NULL')

columns = f'id INTEGER PRIMARY KEY, ' + ', '.join(temp_str1)
create_table = f'CREATE TABLE IF NOT EXISTS {table} ({columns})'
cursor.execute(create_table)


category = ','.join(data.keys())

values = []
for val in list(data.value()):
if isinstance(val,(list,dict,set)):
values.append(str(val))
else:
values.append(val)

q_marks = []
for _ in range(len(data)):
q_marks.append('?')
q_marks = ', '.join(q_marks)

string_execute = f'INSERT INTO {table}({category}) VALUES({q_marks})'
cursor.execute(string_execute,values)

return string_execute + " "+ str(values)

###BELOW IS THE COMPRESSED VERSION OF THIS CODE (WHICH I USE)

def db_give(db_name=DFLT_path, table=DFLT_table, data=DFLT_data):

data['date'] = strftime("%D %T", localtime())
data['date_sec'] = time()

table_data = []
for data_name in data:
if isinstance(data[data_name], str):
table_data.append(('TEXT', data_name, data[data_name]))
elif isinstance(data[data_name], int):
table_data.append(('INTEGER', data_name, data[data_name]))
elif isinstance(data[data_name], float):
table_data.append(('REAL', data_name, data[data_name]))
elif isinstance(data[data_name], (list,dict,set)):
table_data.append(('NUMERIC', data_name, str(data[data_name])))
else: table_data.append(('BLOB', data_name, data[data_name]))

conn = sqlite3.connect(db_name)
cursor = conn.cursor()

with conn:
table = 'db' + str(table)
columns = 'id INTEGER PRIMARY KEY, ' + ', '.join([f'{data_n} {data_t} NOT NULL' for data_t, data_n, _ in table_data])
create_table = f'CREATE TABLE IF NOT EXISTS {table}({columns})'
cursor.execute(create_table)

category = ','.join(list(data.keys()))
cat_data = [str(i) if isinstance(i, (list,dict,set)) else i for i in list(data.values())]
q_marks = ','.join(["?" for _ in range(len(data))])

string_execute = f'INSERT INTO {table}({category}) VALUES({q_marks})'
cursor.execute(string_execute, cat_data)

return string_execute+f', {cat_data}'

PAT:   / rezatahirkheli  
PP: https://www.paypal.com/paypalme/rezat...
BTC: 3EUQBWZKX9Vcwdffd3cUGATQopxrAQQxJ9
LTC: MBXE6hJgxxFYSD8SjmR7sHCHGTqFXmNGoU
GFM: https://gofund.me/7d6500bd


Смотрите видео Python's SQLITE3 Creating Table (and Database) and Inserting Data онлайн без регистрации, длительностью часов минут секунд в хорошем качестве. Это видео добавил пользователь ZeroLife 25 Март 2021, не забудьте поделиться им ссылкой с друзьями и знакомыми, на нашем сайте его посмотрели 44 раз и оно понравилось 1 людям.