将python列表项逐行插入mysql表

hk8txs48  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我有下面的web scraping程序用于实践,但是我决定将列表项插入到一个mysql数据库表中,该表具有长文本数据类型列,但是我不断地得到一个错误。我尝试了不同的方法,甚至将列表转换为Dataframe(如下所示),但仍然是一样的。
以下是列表和Dataframe的片段:

period_tags = seven_day_fc.select(".tombstone-container .period-name")
period = [pt.get_text() for pt in period_tags]
period_df = pd.DataFrame(np.array(period).reshape(-1,1), columns = list("p"))

下面是我的插入语句:

cnx = MySQLConnection(**dbconfig)
cursor = cnx.cursor()
insert_wData = "INSERT INTO weather_data_scrape (period) VALUES (%s)" % (period_df)
cursor.execute(insert_wData)
cnx.commit()
cnx.close()

这是期间列表的打印结果:

['Today', 'Tonight', 'Wednesday', 'WednesdayNight', 'Thursday', 'ThursdayNight', 'Friday', 'FridayNight', 'Saturday']

这是周期df的打印输出:

0           Today
1         Tonight
2       Wednesday
3  WednesdayNight
4        Thursday
5   ThursdayNight
6          Friday
7     FridayNight
8        Saturday

下面是错误信息:
mysql.connector.errors.programmingerror:1064(42000):您的sql语法有错误;请查看与您的mysql server版本对应的手册,以获取在“0”附近使用的正确语法
今天1今晚2周三3周三晚上4'在2号线
感谢您的帮助。

72qzrwbm

72qzrwbm1#

您可以使用此函数创建sql:
http://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.dataframe.to_sql.html

period_df.to_sql('weather_data_scrape', cnx , if_exists='append')

相关问题