首页 > 解决方案 > 在 sql whit python 中插入两个列表

问题描述

通过网络抓取,我得到了两个列表,一个是名称,另一个是产品的价格。如何同时在两列中输入这些值,以便每个产品的价格都在它前面?

import mysql.connector
import re
from bs4 import BeautifulSoup
import requests
list_esm=[]
list_gheymat=[]

cnx = mysql.connector.connect(user='root', password='',
                              host='127.0.0.1',
                              database='vorodi')

cursor = cnx.cursor()



user = str(input())
url =('https://divar.ir/s/tehran?q=')
search = requests.get(url + user)
search.text
soup = BeautifulSoup(search.text, 'html.parser')
esm = soup.find_all('div', attrs={'class':'kt-post-card__title'})
gheymat = soup.find_all('div', attrs={'class':'kt-post-card__top-description'})
for i in esm:
    w = re.sub(r'\s+',' ',i.text).strip()
    list_esm.append(w) 
for i in gheymat:
    q= (re.sub(r'^\s*',' ' ,i.text).strip())
    list_gheymat.append(q)
query_1 = """INSERT INTO divar_2 (name,price) VALUES (%r,%r);""" %(tuple(list_esm),tuple(list_gheymat))
cursor.execute(query_1)
cnx.commit()




cnx.close()

标签: pythonmysql

解决方案


鉴于两个列表的长度相同,您可以迭代它们:

for i in range(len(list_esm)):
    query_1 = """INSERT INTO divar_2 (name,price) VALUES (%r,%r);""" %(list_esm[i], list_gheymat[i])
    print(query_1)


推荐阅读