일부 소스 데이터 소스에서 Postgres 데이터베이스로 데이터를로드해야합니다. 이 작업을 수행하려면 먼저 임시 CSV 파일에 데이터를 쓰고 COPY FROM 쿼리를 사용하여 CSV 파일의 데이터를 Postgres 데이터베이스로로드하십시오. 파이썬에서이 모든 작업을 수행합니다.임시 파일에 쓰지 않고 Postgres의 COPY FROM 파일 쿼리를 파이썬에서 사용하기
코드는 다음과 같습니다
table_name = 'products'
temp_file = "'C:\\Users\\username\\tempfile.csv'"
db_conn = psycopg2.connect(host, port, user, password, database)
cursor = db_conn.cursor()
query = """COPY """ + table_name + """ FROM """ + temp_file + " WITH NULL AS ''; """
cursor.execute(query)
내가 중간 파일에 기록하는 단계를 피하려고. 대신 파이썬 객체에 작성한 다음 COPY FROM file 메소드를 사용하여 postgres 데이터베이스에 데이터를로드하고 싶습니다.
나는 this technique of using psycopg2's copy_from method which copies data from a StringIO object to the postgres database을 알고 있습니다. 그러나 psycopg2를 사용할 수 없기 때문에 COPY FROM 작업이 라이브러리에 종속되지 않도록해야합니다. 다른 Postgres 드라이버에서도 실행할 수있는 Postgres 쿼리가되고 싶습니다.
중간 파일에 쓰지 않고이 작업을 수행하는 것이 더 좋습니다.
는 "그러나, 나는 이유 psycopg2를 사용할 수 없습니다"기존의 스타일보다 얻을, 안전 청소기, 그리고 쉽다. 그 이유는 ...? –
내 직업에서 패키지 사용이 금지되었습니다. – user3422637