Я написал функцию для создания VALUES
части SQL-запроса:
def query_values(data_iterator):
return ',\n'.join('\n({})\n'.format(',\n'.join('"{}"'.format(value) for value in data_row)
) for data_row in data_iterator
),
Когда я вызываю эту функцию и print
результат, я получаю:
query_values:
('\n("801",\n"printer",\n"barcode printer")\n,\n\n("844",\n"laptop",\n"windows")\n,\n\n("997",\n"printer",\n"barcode printer")\n',)
Все в одной строке.Вместо разрыва строки отображаются \n
.
Первоначально у меня был один \n
, но затем я вставил несколько, просто чтобы посмотреть, будут ли они отображаться.
Второйпроблема заключалась в том, что вокруг всего этого есть круглые скобки, которые мне не нужны.
Я ломал голову над двумя проблемами, и я нашел решение для второй:
У меня былозапятая в конце функции.Запятая заставляла функцию возвращать кортеж вместо одной строки.
Я удалил запятую:
def query_values(data_iterator):
return ',\n'.join('\n({})\n'.format(',\n'.join('"{}"'.format(value) for value in data_row)
) for data_row in data_iterator
)
, и это исправило обе проблемы.Вывод был теперь:
query_values:
("801",
"printer",
"barcode printer")
,
("844",
"laptop",
"windows")
,
("997",
"printer",
"barcode printer")
Я поставил запятую обратно, и на дисплее появилось \n
.Я удалил запятую, и у меня снова несколько строк.
Я удалил посторонние \n
, так что теперь я получаю то, что хотел:
query_values:
("801","printer","barcode printer"),
("844","laptop","windows"),
("997","printer","barcode printer")
Итак, мой код работает правильно,но я полностью сбит с толку символами \n
, отображаемыми в старой версии кода.Почему это произошло?
ОБНОВЛЕНИЕ: пара ответов на этот вопрос была сосредоточена на том, почему я получаю кортеж.Это не мой вопрос.Почему отображается /n
? 1040 *