2016-04-11 18 views
1

私はPython2.7からSpyder(Anaconda2(64-bit))を使用しています。psycopg2を使用してcursor.executeを使用して文字列を照会した結果、応答が得られないのはなぜですか?

私が使用してPostgreSQLデータベースとの接続を確立します。私はそれが数字で正常に動作するデータベースを照会しようとした場合

conn = psycopg2.connect(dbname='dbname',host='host',port='5433', user='postgres', password='password') 

を:

私の応答を与え
cursor.execute('SELECT platform.platform_id,platform.platform_name FROM instrumentation.platform WHERE platform_id=15;') 
cursor.fetchone() 

を:(15L「Station_LaMola ')それは私が期待していたものです。私は名前を探して照会しようとすると、

はしかし、それは私によく知られてエラーを報告します。

value = 'Station_LaMola' 
cursor.execute("SELECT platform.platform_name FROM instrumentation.platform WHERE platform_name = '%s'",(value,)) 

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128) 

は、どうやらこれは、クエリを実行するための適切な方法です。私は間違って何をしていますか?事前に

おかげ

答えて

1

は、Unicode文字列として定義し、プレースホルダの周りに引用符を削除します。

value = u'Station_LaMola' 
cursor.execute(""" 
    SELECT 
     platform.platform_name 
    FROM 
     instrumentation.platform 
    WHERE 
     platform_name = %s""", (value,)) 
+0

グレートを!!それは完璧に働いた。再度、感謝します。 –

関連する問題