Mysql python3中Insert data中的SQL语句中没有使用所有参数
我使用Python3,想从网站上抓取数据。我创建了一个数据库,你可以监视我的代码。 我可以轻松、清晰地从网上搜集数据。但是我不能在数据库中插入数据Mysql python3中Insert data中的SQL语句中没有使用所有参数,mysql,sql,python-3.x,execute,Mysql,Sql,Python 3.x,Execute,我使用Python3,想从网站上抓取数据。我创建了一个数据库,你可以监视我的代码。 我可以轻松、清晰地从网上搜集数据。但是我不能在数据库中插入数据 import requests from bs4 import BeautifulSoup import mysql.connector from mysql.connector import errorcode def req(carname): try: URL = 'https://www.truecar.com/u
import requests
from bs4 import BeautifulSoup
import mysql.connector
from mysql.connector import errorcode
def req(carname):
try:
URL = 'https://www.truecar.com/used-cars-for-sale/listings/' + carname + '/?sort[]=best_match'
req = requests.get(URL)
soup = BeautifulSoup(req.text, 'html.parser')
car_name = soup.find_all(class_='vehicle-header-make-model text-truncate')
car_price = soup.find_all(class_='heading-3 margin-y-1 font-weight-bold')
car_km = soup.find_all('div', {'data-test': 'vehicleMileage'})
car_name_list = []
for i in car_name:
car_name_list.append(i.get_text())
# print(car_name_list)
car_price_list = []
for i in car_price:
car_price_list.append(i.get_text())
# print(car_price_list)
car_km_list = []
for i in car_km:
car_km_list.append(i.get_text())
# print(car_km_list)
return car_name_list, car_price_list, car_km_list
except requests.exceptions.HTTPError as err:
raise SystemExit(err)
def Creat_db():
try:
cnx = mysql.connector.connect(
host='localhost',
user='root',
passwd='@Farshad2825')
cursor = cnx.cursor()
cursor.execute('CREATE DATABASE truecar')
print('Creat DB')
cnx = mysql.connector.connect(
host='localhost',
user='root',
passwd='@Farshad2825',
database='truecar'
)
cursor = cnx.cursor()
cursor.execute('CREATE TABLE cars (Car_Name VARCHAR(255),Car_price VARCHAR(25) ,Car_km VARCHAR(25))')
print('Create Table')
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with your user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
def Insert_data():
print('->')
cnx = mysql.connector.connect(
host='localhost',
user='root',
passwd='@Farshad2825',
database='truecar'
)
cursor = cnx.cursor()
Sql_comment = '''INSERT INTO cars (Car_Name,Car_price,Car_km) VALUES (%s, %s, %s)'''
i = showdata()
insert_rows = (i[0], i[1], i[2])
# print(insert_rows)
cursor.executemany(Sql_comment, insert_rows)
print('Data Inserted')
cnx.commit()
Sql_comment = '''SELECT * FROM cars'''
cursor.execute(Sql_comment)
result = list(cursor.fetchall())
print(result)
cursor.close()
cnx.close()
def showdata():
data_ = req('acura')
# for i in data_:
# print(i,'\n')
# print(data_)
# print(data_[1])
# print(data_[0],data_[1],data_[2])
# car_data=dict(zip(data_[0],zip(data_[1],data_[2])))
# list_car_data=list(car_data.items())
# print(car_data)
# print(list_car_data)
return data_
# req('acura')
# Creat_db()
Insert_data()
showdata()
在Insert_data()函数中,我想在数据库中插入数据,并使用executemany插入列表,但我遇到了错误,确实无法解决问题
错误是:
“并非SQL语句中使用了所有参数”)
mysql.connector.errors.ProgrammingError:SQL语句中未使用所有参数
执行操作失败;%s“%err”
mysql.connector.errors.InterfaceError:执行操作失败;SQL语句中未使用所有参数