sqlite
ファイルから読み取った文字列をPythonのデータベースに挿入しようとしています。文字列には空白(改行、タブ文字、スペース)があり、一重引用符または二重引用符のように見えます。これが私がそれをやろうとする方法です:
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
# Create table
c.execute('''CREATE TABLE test
(a text, b text)''')
f = open("foo", "w")
f.write("hello\n\'world\'\n")
f.close()
testfield = open("foo").read()
# Insert a row of data
c.execute("INSERT INTO test VALUES ('%s', 'bar')" %(testfield))
# Save (commit) the changes
conn.commit()
私はこれがエラーで失敗することを発見しました:
c.execute("INSERT INTO test VALUES ('%s', 'bar')" %(testfield))
sqlite3.OperationalError: near "world": syntax error
どうすればこれを達成できますか?データベースに挿入する前に文字列をエスケープする必要がありますか?エスケープする場合はどうすればよいですか?ありがとう。