Невозможно вставить или обновить данные с помощью Python в PostgreSQL.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно вставить или обновить данные с помощью Python в PostgreSQL.

Сообщение Anonymous »

Я пытаюсь создать сценарий для чтения файла CSV и обновления локальной таблицы PostgreSQL. Это данные, которые я пытаюсь загрузить.

Код: Выделить всё

import psycopg2 as pg
from pandas import read_excel,DataFrame

def execute_query(connection,cursor,query:str):
cursor.execute(query)
connection.commit()

def create_conn():
try:
connection = pg.connect("host='localhost' port='5432' dbname='abc' user='abc' password='abc'")
cursor = connection.cursor()
return connection,cursor
except:
print("Connection failed")

def read_sql_file(filename):
with open(filename, 'r') as file:
sql_queries = file.read()
return sql_queries

def import_csv_data(connection, cursor, csv_file,tablename):
try:
df = read_excel(csv_file)

for i,row in df.iterrows():
values = ",".join(map(str,row.values))
query = f"INSERT INTO {tablename} VALUES {values};"
execute_query(connection,cursor,query)

except Exception as e:
print(f"Error: {e}")

def close_connection(connection,cursor):
connection.close()
cursor.close()

if __name__ == "__main__":
conn, curr = create_conn()
if conn and curr:

## Create table
# sql_file = "player_behaviour_create.sql"
# query = read_sql_file(sql_file)
# execute_query(conn,curr,query)

## Insert Data
import_csv_data(conn,curr,r"Data\data_sample_100_rows.xlsx","player_behaviour")

close_connection(conn,curr)

SQL-запрос для создания таблицы:

Код: Выделить всё

CREATE TABLE player_behaviour (
PlayerID INT PRIMARY KEY,
Age INT,
Gender VARCHAR(10),
Location VARCHAR(50),
GameID INT,
PlayTime FLOAT,
FavoriteGame VARCHAR(50),
SessionID BIGINT,
CampaignID INT,
AdsSeen INT,
PurchasesMade INT,
EngagementLevel VARCHAR(10)
);
Я подозреваю, что поскольку я конвертирую все в строку (import_csv_data), происходит несоответствие типов данных, но я не уверен. Если это так, что я могу сделать?
Мне также могли бы пригодиться несколько советов по оптимизации этого кода.

Подробнее здесь: https://stackoverflow.com/questions/786 ... postgresql
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»