Python положить строку Dynami c с таблицами \ и "и" в mysql - PullRequest
0 голосов
/ 19 марта 2020

У меня есть 675 000 строк для добавления в таблицу mysql. большинство строк - нормальные слова.

но некоторые строки похожи на приведенный ниже пример строк

  1. "км / 24" *
  2. клавиатура
  3. someword'и
  4. "touch + \" someword \
  5. 24 "монитор
  6. очиститель" 150 "

вот так.

Я могу удалить все \ из строки. сделайте строку в списке и выполните

list_of_string = list(word)
for i in range(10) :
    if """\\""" in list_of_string :
        del list_of_string[list_of_string.index("""\\""")

, но, как вы можете видеть, я не могу заменить или убрать все ", потому что есть какое-то дюймовое выражение, как в примере номер 5.

, что я должен сделать это удалить ", когда его число является множеством из двух. так я и сделал

numb = list_of_string.count('"')
if numb % 2 == 0 :
    for i in range(numb):
        del list_of_string[list_of_string.index('"')
else :
    for i in range(numb-1):
        del list_of_string[list_of_string.index('"')

наконец сделал

word = "".join(list_of_string)

теперь результат

  1. kms24 "
  2. клавиатура
  3. somewordand (я тоже все удалил)
  4. touch + someword
  5. 24 "монитор
  6. cleaner150

Теперь мне нужно поставить это слово в таблицу mysql, что я сделал, это

sql1 ='UPDATE {cat} SET {col} = "{val}" WHERE ind = "{ex}"'.format(cat=category, col=column, val=word, ex=index)
c.execute(sql1)

, но, как вы ожидали, есть ошибка. Я не могу поставить kms24 "с приведенным выше сценарием.

Кто-нибудь знает, как заставить myspl положить строку, которая имеет" в строке?

1 Ответ

1 голос
/ 19 марта 2020

Вы никогда не должны строить SQL строк из внешних источников. Используйте API, такие как MySQl Connector API .

. Причина в том, что вы можете вносить свои собственные ошибки, а другие могут использовать их, что называется "SQL инъекционная атака ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...