2016-06-07 9 views
1

Я сейчас работаю над изучением Python, и я уже застрял в странной проблеме.Python/MySQL Select возвращает None с% s

Я получаю URL-адреса с сайта beautifulsoup, который я уже могу сохранить в базе данных mysql. Теперь я хочу, чтобы сценарий сначала проверял, находится ли обходной URL уже в базе данных.

Запрос выглядит следующим образом:

check_url = "SELECT url FROM shop_ig " \ 
    "WHERE url = '%s'" 

Здесь я получаю URL:

soup = BeautifulSoup(plain_text, "html.parser") 

for link in soup.findAll('a', {'class': 'ig-preorders-item'}): 
    href = link.get('href') 
    print(href) 

Теперь, когда у меня есть URL, я хотел бы проверить, если HREF уже в базе данных поэтому я выполняю запрос, используя:

## Check if url is in db 
    cursor.execute(check_url, href) 
    data = cursor.fetchone() 
    sqlconnect.commit() 

Теперь, к странной вещи, данные возвращают Нет, однако, если я вхожу url постоянно в запросе находит url в базе данных.

+0

вы можете печатать cursor._executed? – eyalsh

+0

yes, that return b "SELECT url FROM shop_instantgaming WHERE url = '% s'" – Nolibert

+0

'cursor.execute (check_url, (href,))' вместо 'cursor.execute (check_url, href)'. – alecxe

ответ

0

Благодаря alexce Я нашел проблему.

Я теперь с помощью:

cursor.execute(check_url, (href,)) 

Выбрать, теперь выглядит следующим образом ('удалена)

check_url = "SELECT url FROM shop_instantgaming " \ 
"WHERE url = %s" 
Смежные вопросы