-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDatabaseComplier.py
More file actions
60 lines (45 loc) · 1.6 KB
/
DatabaseComplier.py
File metadata and controls
60 lines (45 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import psycopg2
import pandas as pd
from psycopg2 import sql
conn = psycopg2.connect(
user="admin",
host="localhost",
database="Musescapes",
password="admin",
port=5432
)
csv_file = "discog_music_database.csv"
df = pd.read_csv(csv_file)
print("Column names in DataFrame:", df.columns.tolist())
print("First few rows of the DataFrame:")
print(df.head())
table_name = "music"
columns = ["ID", "Album", "Artist", "Year", "Country", "Track Position", "Track Title", "Album Cover", "Genre"]
missing_columns = [col for col in columns if col not in df.columns]
if missing_columns:
print(f"Warning: Missing columns in the DataFrame: {missing_columns}")
else:
df["ID"] = pd.to_numeric(df["ID"], errors="coerce", downcast="integer")
df["Year"] = pd.to_numeric(df["Year"], errors="coerce", downcast="integer")
values = [tuple(x) for x in df[columns].to_numpy()]
print(f"Number of columns: {len(columns)}")
print(f"First row of values: {values[0]}")
print(f"Number of values in the first row: {len(values[0])}")
cursor = conn.cursor()
insert_query = sql.SQL("""
INSERT INTO {} ({})
VALUES ({})
""").format(
sql.Identifier(table_name),
sql.SQL(", ").join(map(sql.Identifier, columns)),
sql.SQL(", ").join([sql.Placeholder()] * len(columns))
)
print(insert_query.as_string(conn))
try:
cursor.executemany(insert_query, values)
conn.commit()
print("Data inserted successfully.")
except Exception as e:
print(f"Error occurred: {e}")
cursor.close()
conn.close()