Comment insérer des chaînes avec des citations et des retours à la ligne dans sqlite db avec Python?

J'essaie d'insérer des chaînes de lire à partir d'un fichier dans un sqlite base de données en Python. Les chaînes d'espaces (retour à la ligne, tabulations et les espaces) et ont aussi des apparitions de guillemets simples ou doubles. Voici comment j'ai essayer de le faire:

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()

Je trouve que cela échoue avec l'erreur:

    c.execute("INSERT INTO test VALUES ('%s', 'bar')" %(testfield))
sqlite3.OperationalError: near "world": syntax error

Comment puis-je y parvenir? Ne les chaînes de caractères doivent être échappés avant l'insertion dans la base de données, et si oui, comment? merci.

OriginalL'auteur user248237dfsf | 2013-02-04