逐行将python列表项插入MySQL表

时间:2018-06-05 15:16:39

标签: python mysql web-scraping

我有以下网络抓取程序用于练习目的但我决定通过将列表项插入具有Long_Text数据类型列的MySQL数据库表来进一步,但我一直收到错误。我尝试了不同的方法,甚至将列表转换为数据帧(如下所示)但仍然相同。

以下是列表和数据框的摘录:

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服务器版本的正确语法使用附近' 0
  今天       1今晚       2星期三       3星期三晚上       4'在第2行

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用函数to_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')