1
pythonプロジェクトdedupeの例を使ってデータを保存しようとしています。私が得ているエラーは、データベースにデータを挿入しようとすると、最後に向かっています。PostgresがSQL文字列にバイナリを追加するのを嫌う
がTraceback (most recent call last):
File "dedupe_orgs.py", line 11, in <module>
main()
File "dedupe_orgs.py", line 7, in main
entity.dedupe_orgs()
File "/orgs.py", line 183, in dedupe_orgs
c2.execute("INSERT INTO entity_organization %s VALUES %s" % (values, args_str))
psycopg2.ProgrammingError: syntax error at or near "b"
LINE 1: ...d,id,name,created_on,updated_on,entity_id) VALUES b"(0,65,'S...
これは、関連するコードです:
私が手にエラーがある私は、問題は、Python 2に書かれた例であると考えてい
num_cols = len(column_names)
mog = "(" + ("%s," * (num_cols - 1)) + "%s)"
args_str = ','.join(c2.mogrify(mog, x) for x in full_data)
values = "(" + ','.join(x for x in column_names) + ")"
c2.execute("INSERT INTO entity_organization %s VALUES %s" % (values, args_str))
con2.commit()
con2.close()
con.close()
が、私は、Python 3どのように使用していますエラーを解決して、 'b'がすべてのクエリに追加されず、データが保存されないようにすることはできますか?
これはあなたの質問に答えませんが、私はあなたのpythonコードでpostgresデータベースとやりとりする場合は、sqlalchemyを強くお勧めします。ほとんどの場合、生のSQLコードを書く必要がないため、このようなエラーは発生しません。 – melchoir55
@ melchoir55私は実際には他の領域でsqlalchemyを使用していますが、この例を変換する前にこの例を使用しようとしていました。たぶん私は今試してみるべきでしょう。 – Casey
私はsqlalchemyに切り替えました。 – Casey