最初のオプションは、クエリパラメータをクエリに入れる正しい方法です。これはパラメータ化されたクエリと呼ばれます。 。この場合、データベースドライバーにクエリパラメーターをエスケープさせ、それらをクエリに安全に挿入し、PythonからMySQLへの型変換を処理させます。
発生しているエラーは、ID
の1つを変換できなかったことを意味します 、Record
、Latitude
、Longitude
またはcode
有効なMySQLデータベースタイプへのパラメータ値。具体的には、投稿した変数の種類をご覧ください:
ID <type 'unicode'>
Record <type 'unicode'>
Latitude <class 'bs4.element.NavigableString'>
Longitude <class 'bs4.element.NavigableString'>
code <type 'unicode'>
問題はLatitude
にあります およびLongitude
-それらはBeautifulSoup
のNavigableString
クラスインスタンス-NavigableString
を変換する方法を理解するのが難しいMySQLコンバーター オブジェクトを有効なMySQLタイプに変換します。事前に明示的に文字列に変換してください:
update = """
INSERT INTO
myDB.newtable
(ID,Record,Latitude,Longitude,code)
VALUES
(%s,%s,%s,%s,%s)
"""
cursor2.execute(update, (ID, Record, str(Latitude), str(Longitude), code))