sql >> データベース >  >> RDS >> Mysql

Pythonでのmysql.connectorを使用したformat-parametersの処理に失敗しました

    最初のオプションは、クエリパラメータをクエリに入れる正しい方法です。これはパラメータ化されたクエリと呼ばれます。 。この場合、データベースドライバーにクエリパラメーターをエスケープさせ、それらをクエリに安全に挿入し、PythonからMySQLへの型変換を処理させます。

    発生しているエラーは、IDの1つを変換できなかったことを意味します 、RecordLatitudeLongitude または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))
    



    1. データベースの増分変更の検出(OracleからMongoDB ETLへ)

    2. エンティティフレームワークを介してintの配列をT-SQLストアドプロシージャに渡す

    3. SQL Server ROWCOUNT_BIG()

    4. SQLiteReadOnlyDatabaseException:読み取り専用データベースを書き込もうとしました(コード1032)