python
  • postgresql
  • 2017-11-20 7 views 0 likes 
    0

    私はそのようなコードをオンラインで見つけましたが、私はそれを編集してPythonデータをPostgreSQLにリンクしようとしています。私は本当にあなたの助けに感謝するので、コーディングには本当に新しいです。Pythonデータをpostgresqlにインポートする方法

    import psycopg2 
    import sys 
    
    connection = None 
    
    connection = psycopg2.connect("host='localhost' db='football'   
    user ='postgres' password='password'") 
    cur = con.cursor() 
    con.commit() 
    
    try: 
        with connection.cursor() as cursor: 
        # Create a new record 
        sql = "INSERT INTO `Games` (`email`, `password`) VALUES (%s, %s)" 
        cursor.execute(sql, ('[email protected]', 'very-secret')) 
    except SyntaxError as e: 
        print("There was an error: {}".format(e)) 
    
    
    connection.commit() 
    
    with connection.cursor() as cursor: 
    # Read a single record 
        sql = "SELECT row[5]" 
        cursor.execute(sql, ('row [5]',)) 
        result = cursor.fetchone() 
        print(result) 
    finally: 
        connection.close() 
    
    +0

    そのコードは実際にPythonからPostgreSQLにデータを挿入するべきです。あなたは何ができないのですか? – bernie

    +0

    コメントありがとうございました。 EclipseでPydevを使って私のcsvデータをPythonに手に入れました。ここで私はそれをきれいにすることができました。今私はそのデータをpostgresqlの異なるテーブルに送りたいと思っています。私は何をすべきか? –

    +0

    データとテーブル構造の小さな例を質問に編集できますか? – bernie

    答えて

    0

    あなたtry文はexceptとペアにする必要があります。 try/exceptの目的は、tryブロックにスローされたエラーを正常にキャッチすることです。しかし、exceptがなければ、tryはそれほど役に立ちません。

    try: 
        with connection.cursor() as cursor: 
        # Create a new record 
         sql = "INSERT INTO `Games` (`email`, `password`) VALUES (%s, %s)" 
         cursor.execute(sql, ('[email protected]', 'very-secret')) 
    except SyntaxError as e: 
        print("There was an error: {}".format(str(e))) 
    

    実際のpsycopg2コードは正しく表示されます。

    +0

    が働いています。もう一つの問題:インポートpsycopg2 ModuleNotFoundError:私はそれをダウンロードしたという事実にもかかわらず、「psycopg2」 という名前のモジュール。何をすべきか? –

    +0

    OKAYそれはすべてが働いたが、コードを実行しているとき、私は ')(' STRと 'e'をラップしてみてください、更新を参照してください「エラー%sの%eは」そう技術的に、それは失敗します。.. –

    +0

    を取得します。しかし、実際に 'e'を印刷する必要はありません。単に' pass'やその他のカスタム印刷文を使うことができます。あなたが直面していた主な問題は、不完全な 'try'構文でした。 –

    関連する問題