TypeError例外:%dのフォーマット:数値が必要とされる、ないSTR解決データを与えられ、インサートのPythonのMySQL

今日、次の文を使用して、データをクロールし、PythonのMySQLデータベースに書かれました:

       cursor.execute(
                    "comments_p_spiderへの挿入(OWNER_ID、FROM_NAME、コンテンツ、CREATE_TIME、スコア、comment_level)値(%のD、%S、%S、%S、%F、%S)"、
                    (P_ID、STR(ユーザ名)、STR(contentStr)、STR(CREATE_TIME)、フロート(スコア)、STR(comment_level)))
            conn.commit()

  

次のように与えられました:

 

TypeError例外:%dのフォーマット:数値が必要ではなく、STR

 

解决方案:フォーマット文字列は、実際に通常のPythonのフォーマット文字列ではありません。Youmustは常に%sのすべてのフィールドのを使用しています。 

すなわち、フォーマットの標準的な文字列よりも、書式設定のpython MySQLdbは文字列は、%sは常に文字列の形式を使用する必要があります。

値の形式のSQL文のコードは%sに変更されたように、(関係なく、どのようなデータの種類を挿入するように)、正常に実行します。

        cursor.execute(
                    "comments_p_spiderへの挿入(OWNER_ID、FROM_NAME、コンテンツ、CREATE_TIME、スコア、comment_level)値(%S、%S、%S、%S、%S、%S)"、
                    (P_ID、STR(ユーザ名)、STR(contentStr)、STR(CREATE_TIME)、フロート(スコア)、STR(comment_level)))
            conn.commit()

  

おすすめ

転載: www.cnblogs.com/wang-jx/p/12313854.html