2012-06-21 2 views
3

나는 분명히 나에게 분명하다는 질문에 대해 약간의 이해를하고 싶습니다. psycopg2 또는 .csv 파일에 해당하는 이름과 .csv 파일에 지정된 열 (아마도 가장 중요한)을 가진 다른 python Postgres 데이터베이스 어댑터를 사용하여 테이블을 만드는 방법이 있습니까?psycopg2를 사용하여 CSV 파일에서 테이블을 동적으로 생성

+0

네, 파이썬이 일반적이다 (아마도 필드에 대한 템플릿 엔진을 사용하여 요구 사항이있을 경우 다음 삽입을 실행) SQL 쿼리를 작성 이를 달성 할 수있는 범용 프로그래밍 언어입니다. – monkut

답변

1

psycopg2 라이브러리를 제대로 보도록하겠습니다. 이것은 머리 꼭대기에 있습니다. (잠시 사용하지 않아도되지만 설명서가 충분합니다.)

단계는 다음과 같습니다

    CSV에서
  • 읽기 열 이름은
  • 만들기 (...)
  • 어쩌면 데이터를 INSERT "어떤 테이블 만들기"파일

    수입을 os.path my_csv_file = '/home/somewhere/file.csv' table_name = os.path.splitext (os.path.split (my_csv_file) [1]) cols = next (csv.reader (open (my_csv_file)))

당신은 거기에서 갈 수

...

+0

필자의 솔루션을 확실히 시도해 보겠다.하지만 각 열의 유형을 선언하는 것에 대해 물어 보겠다. 기본적으로이 두 유형 사이에는 서로 다른 열이있는 파일 유형이 2 개만 예상된다. 사전에 각 열의 유형을 저장 한 다음 파일 유형에 따라 해당 사전을 create table 문에 전달할 수 있습니까? 나는 사전 형식으로는 가능하지 않다고 생각하지만 가능하게 구현할 수 있겠는가? 신속한 답변을 보내 주셔서 감사합니다. –

+0

filename을 두 파일 형식 중 하나로 매핑하는 { 'file1.csv': 1, 'file2.csv': 2, 'file3.csv': 1} 사전을 하나 가질 수 있습니다. 다음은 {(1, 'name') : 'text', (1, 'gender') : 'char (1)', (2, 'age') : 'integer'}와 같은 또 다른 단어입니다. 파일 유형과 열 이름의 두 튜플을 포함하며 열 유형에 매핑됩니다. 네가 묻고있는거야? –

+0

예, 정확히 묻습니다.하지만 psycopg2 CREATE TABLE 문에서 이러한 유형의 인수를 사용할 수 있는지 의심 스러웠습니다. 나는 그것을 시도 할 것이고 희망을 갖고 나중에 코드를 제공 할 것이다. 다시 한 번 감사드립니다 –

관련 문제