python
  • sql
  • postgresql
  • sqlalchemy
  • 2017-02-27 1 views 0 likes 
    0

    다음 코드 줄을 긴 시간 동안 사용해 왔지만, 오늘날에는 다음과 같은 오류가 발생하여 그 이유를 알 수 없습니다.Python : Postgresql DB에 연결하는 데 문제가 있습니다.

    "Could not parse rfc1738 URL from string '%s'" % name) 
    sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string 'host='<host>' dbname='<db>' user='<user>' password='<pass>'' 
    
    +0

    무슨 뜻인지 확실치 않습니다. 분명히 해줄 수 있니? –

    +0

    "blahblahblah.com"과 같은 URL 주소입니다. –

    +0

    자격 증명의 개인 정보를 보호하기 위해 추적 오류를 변경했기 때문에 그랬습니다. –

    답변

    0

    변화 link_conn_stringhere처럼 될 :

    이상한 것은

    import pandas as pd 
    import psycopg2 
    link_conn_string = "host='<host>' dbname='<db>' user='<user>' password='<pass>'" 
    conn = psycopg2.connect(link_conn_string) 
    df = pd.read_sql("SELECT * FROM link._link_bank_report_lms_loan_application", link_conn_string) 
    

    오류 메시지 ... 나는 동일한 코드를 사용하고 그들은 모두 제대로 작동 다른 스크립트를 가지고있다

    postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...] 
    

    예 :

    >>> import psycopg2 
    >>> cs = 'postgresql://[email protected]:5432/t' 
    >>> c = psycopg2.connect(cs) 
    >>> import pandas as pd 
    >>> df = pd.read_sql("SELECT now()",c) 
    >>> print df; 
               now 
    0 2017-02-27 21:58:27.520372+00:00 
    
    -1

    연결 문자열이 잘못되었습니다.

    당신은 문자열에 변수 "link_conn_string"을 할당하고 이런 일에 다음 라인을 대체하는 행을 제거해야합니다 (기계 곳의 이름으로 로컬 호스트, 포스트 그레스비밀를 대체하기 위해 기억 데이터베이스가 "psql의"공동으로 작동하고 있는지 확인해 볼 수 있습니다, 또한

    conn = psycopg2.connect(dbname="localhost", user="postgres", password="secret") 
    

    : PostgreSQL는, 그 연결을하는 데 필요한 사용자비밀번호)를 실행 터미널에서 mmand를 입력합니다 (다시 사용자와 데이터베이스를 변경하십시오).

    psql -U postgresql database 
    
    +0

    나는 [docs] (http://initd.org/psycopg/docs/module.html)에 오타가 있다고 의심합니다. 키워드 인수에'='가 없기 때문입니다. 또한 그들은 OP와 유사한 문자열이 유효한 대안이라고 말합니다. – jonrsharpe

    +0

    발견하지 못했습니다. 실제로는 문서에서 잘못되었습니다. –

    관련 문제