С одной стороны, я пишу скрипт, который разлагает слова на слоги. Результатом является список элементов переменных с именем cod1.
С другой стороны, у меня есть база mysql («décodeur») и таблица «codon», которая содержит столбец слога, называемый семами, и еще один, который содержит предполагаемое значение слога (называемое sens).
Я думал, что запрос sql может успешно «прочитать» элементы списка cod1 и найти их в столбце 1, чтобы дать смысл, написанный во втором столбце.
Но запрос, который я написал, не выполняет свою работу и улавливает только последний слог cod1 и его смысл.
Можно ли сделать запрос, повторяющий элементы списка, когда мы заранее не знаем количество элементов этого списка? (один и тот же слог может встречаться несколько раз в одном и том же слове)
Кто может мне помочь?
try:
sql=("""SELECT semes, sens1 FROM codons WHERE semes = %s""")
k.execute(sql, (cod1,))
reponse = k.fetchall()
for x in reponse:
print(x)
except:
pass
if conn:
conn.close()
Я с python 2.7 и соединителем mysql. Спасибо за ваш ответ.
list не имеет функции для использования SQL-запроса. Вы можете преобразовать список в DataFrame только с модульными пандами, а в DataFrame есть функции для использования SQL-запросов. Но я не уверен, что для этого не используется база данных SQLite.
@furas: я не знаю Pandas, я изучу его.






Python не будет автоматически распространять список и многократно выполнять запрос. Вам нужно написать свой собственный цикл:
sql=("""SELECT semes, sens1 FROM codons WHERE semes = %s""")
for seme in cod1:
try:
k.execute(sql, (seme,))
reponse = k.fetchall()
for x in reponse:
print(x)
except:
pass
Спасибо за вашу помощь, но я понятия не имею, как написать цикл, вы можете мне помочь?
Я не понимаю вопроса. Я написал петлю в ответе. Какое еще руководство вам нужно?
Я написал это сообщение до того, как понял, что ты дал мне петлю! И работает нормально!!!! спасибо за Ваш ответ.
используя
len(list)вы можете получить количество элементов в списке. Python в основном не нуждается в количестве элементов, потому что он использует циклfor item in list: