Я написал код python для подключения к базе данных MySQL, откройте текстовый файл и для каждой записи в текстовом файле выполните запрос и запишите результат в выходной файл. Вместо того, чтобы записывать результат каждого запроса в выходной файл, однако записывается только один результат. Если в запросе, который я использую, нет аргументов, все работает отлично. Проблема возникает только при попытке добавить аргументы.Запрос MySQL с Python не возвращает все результаты
Я довольно новичок в Python, поэтому я могу совершить глупую ошибку, но мне еще не удалось найти ничего, что помогло бы, поэтому любая помощь была бы весьма признательна.
код у меня есть:
output = open("results.txt", "w+")
cnx= mysql.connector.connect(**config)
cursor = cnx.cursor()
with open("input.txt") as i:
for line in i:
# Construct query to get type
query = ("select type from table1, table2 "
"where table1.name = %s and table1.id = table2.id")
# Query arguments
args = (line)
cursor.execute(query, args) # Execute query
for entry in cursor:
output.write(str(entry) + "\n")
cursor.close()
cnx.close()
ли вы закрыть файл, используя 'output.close() '? Если нет, возможно, данные теряются в выходном буфере. – dnet
Для записи: «args = (line)» должно быть «args = (line,)», но см. Ответ joente для реального исправления. – geertjanvdk