Апостроф (') помогает при работе с sql с использованием Python

Я пытаюсь прочитать содержимое и написать операторы вставки для создания сценария sql с использованием Python.

Я столкнулся с проблемой, когда содержимое, которое я прочитал, содержит апостроф, и я не уверен, как мне обойти эту проблему, потому что я не могу просто заменить (') любыми другими символами, поскольку я имею дело с asciimathml ( математические данные), и я не могу просто изменить содержимое, которое я прочитал.

Большое спасибо!


person XinYi Chua    schedule 19.02.2012    source источник
comment
Если апостроф является для вас проблемой, значит, вы не экранировали свои данные (что необходимо сделать, прежде чем использовать их как часть SQL-запроса). См. xkcd.com/327 для примера строки ввода, которая была бы особенно... забавной.. . для обработки без экранирования.   -  person Borealid    schedule 19.02.2012
comment
Быстрый поиск по параметрам sql python нашел этот вопрос - если который не подходит (используя другую библиотеку sql?), затем выполните поиск, включая имя вашей библиотеки и параметр слова /   -  person Damien_The_Unbeliever    schedule 19.02.2012


Ответы (1)


Вы можете использовать одну из функций escape_string (каждый пакет db предоставляет ее), чтобы удвоить одинарную кавычку или поставить перед ней обратную косую черту. Но вам будет намного лучше, если вы будете использовать подстановку параметров. Например:

cursor.execute("INSERT INTO Test (column1, column2) VALUES (?, ?)", "It's all right", 45)

Сделайте это таким образом, и сервер обеспечит правильное экранирование ваших строк.

person alexis    schedule 19.02.2012