python 3+에서 사전 (또는 팬더 데이터 프레임)의 값을 데이터베이스에 삽입하고 싶습니다. 나는 postgres 데이터베이스로 psycopg2를 선택했다.Psycopg2 postgres 데이터베이스에 파이썬 사전 삽입
문제는이 작업을 수행 할 수있는 적절한 방법을 찾을 수 없다는 것입니다. SQL 문자열을 쉽게 연결하여 실행할 수는 있지만 psycopg2 설명서는이를 명시 적으로 경고합니다. 이상적으로는 다음과 같이하고 싶었던 :
cur.execute("INSERT INTO table VALUES (%s);", dict_data)
및하여 딕셔너리의 키 테이블의 열을 일치하는지 알아낼 수 실행할 것을 희망했다. 이것은 작동하지 않았다. psycopg2 문서의 예에서 나는이 방법 나는
TypeError: 'dict' object does not support indexing
열 이름이 일치하는 테이블에 사전을 삽입하는 가장 phytonic 방법은 무엇을 얻을 수있는
cur.execute("INSERT INTO table (" + ", ".join(dict_data.keys()) + ") VALUES (" + ", ".join(["%s" for pair in dict_data]) + ");", dict_data)
에있어?
장점/단점? 두 번째 해결책은 기본적으로 제안 된 것과 동일합니다 (문자열 형식과 합성 제외). Afaik cur.execute는 필요한 경우 cur.mogrify를 호출합니까? – Paamand