pandas.to_sql()失敗,遇到 pandas.io.sql.DatabaseError:1146 提示表格不存在的解決辦法

在寫我的爬蟲腳本 csdn_my_article 時,遇到一處報錯:
error

pandas.io.sql.DatabaseError: Execution failed on sql ‘select * from csdn_my_article;’: (1146, “Table ‘zhihuclawer.csdn_my_article’ doesn’t exist”)

相關的代碼是:


pd.io.sql.to_sql(article_df, "csdn_my_article", conn, if_exists='append', index=False)

因爲該爬蟲腳本是首次運行,mysql 中並沒有該table,在執行上述語句時,將會自動創建新表格。但顯然,創建新表格遇到問題,導致創建表格失敗。

經檢查,失敗的原因是:

    attn = r'some_(.*?)attn_(.*?)desct_(.*?)'
    result = re.findall(attn,html_text,re.S)
    if result:
        article_df = pd.DataFrame(result,columns=['some_columns','title_list'])

我在執行該腳本之前,曾修改正則匹配式 attn裏的描述,導致多抓取一個變量,但在定義 article_df 這個 pandas dataframe數據時,忘記定義該參數的 columns 名稱。從而導致正則匹配拿到的每項結果的參數個數,比 dataframe 所定義的 columns 個數要多。最終導致接下來to_sql() 執行失敗。

columnslist 中增加對應的 columns ,果然能正常執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章