Hej. Mam problem z dodaniem rekordów do bazy danych. Mianowicie w pliku głównym mam coś takiego:
dbname = config.get("dbname")
for k, v in data.items():
date.append(k)
data_array = np.array([v, v["1. open"], v["2. high"], v["3. low"], v["4. close"]])
print(data_array)
if k in date:
DB.add_records(DB, data_array, dbname)
print(DB.add_records())
Odwołuję się do klasy DB i metody add_records() z innego pliku:
class DB:
db_connection = None
def create_connect(self, dbname):
# Połączenie z bazą danych lub stworzenie nowej jeśli nie istnieje
self.db_connection = sqlite3.connect(dbname)
def add_records(self, data_array, dbname):
# Połączenie z bazą danych lub stworzenie nowej jeśli nie istnieje
if self.db_connection is None:
self.create_connect(dbname)
# Dostep do kolumn przez indeksy oraz nazwy
self.db_connection.row_factory = sqlite3.Row
sql_insert_query = """
IF NOT EXISTS dataprice in prices (INSERT INTO prices (dateprice, price_open,
price_close, price_high, price_low)
VALUES (?, ?, ?, ?, ?))
"""
self.db_connection.execute(sql_insert_query, data_array)
self.db_connection.commit()
I po wywołaniu funkcji create_connect() otrzymuję taki komunikat:
line 29, in add_records
self.create_connect(dbname)
TypeError: create_connect() missing 1 required positional argument: 'dbname'
Przekazuję przecież ten argument poprzez tą linię:
DB.add_records(DB, data_array, dbname)
Czy ktoś wie co może być nie tak?