, что вы, вероятно, ищете это StringIO
, который представляет собой файл-подобный интерфейс для списка строк, и позволяет извлечь одну строку в конце:
import StringIO
builder = StringIO.StringIO()
builder.write('INSERT INTO ')
builder.write(table_name)
builder.write(' VALUES ')
for row in data_frame.iterrows():
raw_row = row[1].values
builder.write(str(tuple(raw_row)))
insert_string = builder.getvalue()
Хотя большинство пользователей python довольны использованием списка напрямую, как в Rafael's answer. Для полноты вот ваш код переводится в этот стиль:
builder = ['INSERT INTO ', table_name, ' VALUES ']
for row in data_frame.iterrows():
raw_row = row[1].values
builder.append(str(tuple(raw_row)))
insert_string = ''.join(builder)
В нечетном случае, что кто-просмотр на этот вопрос на самом деле нуждается в изменяемую строке; Мне жаль говорить, что нет ничего такого, и решение зависит от конкретной проблемы, которую вы пытаетесь решить. Если вам нужна переменная байт, это доступно, встроенное, как bytearray
.
>>> b
bytearray(b'xaby')
>>> b[1:3] = b'yz'
>>> b
bytearray(b'xyzy')
>>> b.extend(b'foonly')
>>> b
bytearray(b'xyzyfoonly')
нет эквивалентного действия для str
.
Примечание - Вы не хотите, чтобы этот подход ... это подвергается атакам SQL-инъекции. Библиотеки Python имеют стандартный API DBI, который позволяет безопасно строить строку запроса - см. Http://stackoverflow.com/questions/11807601/what-is-the-most-effective-way-of-inserting-python-dictionaries- list-in-sql/11807972 # 11807972 например –