我有下面的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号线
感谢您的帮助。
1条答案
按热度按时间72qzrwbm1#
您可以使用此函数创建sql:
http://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.dataframe.to_sql.html