Код: Выделить всё
values = "( 14587, '290\'960', 'This is, a, difficult,,, string that uses '' \" and even '' \" , '' '', ''. So it definitely needs to be checked for escape characters.', null )"
- Разные Типы данных: значения могут быть целыми числами, строками или нулями.
- Escape-символы: строки могут содержать экранированные одинарные кавычки (''),
обратная косая черта или другие специальные символы. - Встроенные разделители: запятые
могут появляться внутри строк, что упрощает разделение по запятые
невозможны. - Сопоставление кавычек. Очень важно правильно сопоставить одинарные кавычки вокруг
строк.
Код: Выделить всё
import re
values = "( 14587, '290\'960', 'This is, a, difficult,,, string that uses '' \" and even '' \" , '' '', ''. So it definitely needs to be checked for escape characters.', null )"
# Remove outer parentheses and leading/trailing spaces
cleaned_values = values.strip().strip('()')
# Use regular expression to split by commas outside quotes, accounting for escaped quotes
values_list = re.split(r",(?=(?:[^']*'[^']*')*[^']*$)", cleaned_values)
# Strip whitespace from each part
values_list = [v.strip() for v in values_list]
print(cleaned_values)
for value in values_list:
print(value)
Вопрос:
Каков наилучший и наиболее надежный способ анализа таких строк SQL VALUES в отдельные столбцы, гарантируя следующее:
- Правильную обработку различных типов данных.
Экранирование и анализ специальных символов правильно. - Сохранение целостности строк со встроенными запятыми или кавычками.
Подробнее здесь: https://stackoverflow.com/questions/791 ... mns-safely
Мобильная версия