小能豆

python mysql 脚本:DataError:(1366,“不正确的整数值:

py

assignment2我正在尝试编写一个 python 脚本,使用 phpmyadmin 将 csv 数据文件导入 mysql 数据库。我收到以下错误消息:DataError: (1366, “第 1 行第. schlumberger.列的整数值:’time’ 不正确time”)

这是我使用的代码:

import pymysql
import csv

conn = pymysql.connect(host = 'xxxx', user = 'root', password = '', autocommit = True, port = xxxx)

csv = csv.reader(open('data-large-b.csv'))

try:
    with conn.cursor() as cursor:
        SQLCreateDatabase = "CREATE DATABASE IF NOT EXISTS Assignment2"

        cursor.execute(SQLCreateDatabase)

        conn.select_db('Assignment2')

        SQLCreateTable = "CREATE TABLE IF NOT EXISTS schlumberger(time INT, DISCHARGE_PRESSURE DEC, INTAKE_PRESSURE DEC, INTAKE_TEMPERATURE DEC, MOTOR_TEMP DEC, VSDFREQOUT DEC, VSDMOTAMPS DEC, DISCHARGE_PRESSURE1 DEC, INTAKE_PRESSURE1 DEC, INTAKE_TEMPERATURE1 DEC, MOTOR_TEMP1 DEC, VSDFREQOUT1 DEC, VSDMOTAMPS1 DEC, DISCHARGE_PRESSURE2 DEC, INTAKE_PRESSURE2 DEC, INTAKE_TEMPERATURE2 DEC, MOTOR_TEMP2 DEC, VSDFREQOUT2 DEC, VSDMOTAMPS2 DEC, CHOKE_POSITION INT, PRESSURE1 INT, PRESSURE2 DEC, TEMPERATURE1 INT, TEMPERATURE2 INT, WATER_CUT INT, LIQUID_RATE INT, WATER_RATE DEC, OIL_RATE DEC, CHOKE_POSITION1 INT, PRESSURE11 INT, PRESSURE22 INT, TEMPERATURE11 INT, TEMPERATURE22 INT, WATER_CUT1 DEC, LIQUID_RATE1 INT, WATER_RATE1 DEC, OIL_RATE1 DEC)"

        cursor.execute(SQLCreateTable)

        for row in csv:
            cursor.execute('INSERT INTO schlumberger VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', row)

finally:
    conn.close()

有人能帮我弄清楚为什么上传不了吗?谢谢!


阅读 70

收藏
2025-02-27

共1个答案

小能豆

你的 csv 有一个标题行,因此请跳过它,因为第一行需要一个 int,并且它会找到文本

import pymysql
import csv

conn = pymysql.connect(host = 'xxxx', user = 'root', password = '', autocommit = True, port = xxxx)

csv = csv.reader(open('data-large-b.csv'))

try:
    with conn.cursor() as cursor:
        SQLCreateDatabase = "CREATE DATABASE IF NOT EXISTS Assignment2"

        cursor.execute(SQLCreateDatabase)

        conn.select_db('Assignment2')

        SQLCreateTable = "CREATE TABLE IF NOT EXISTS schlumberger(time INT, DISCHARGE_PRESSURE DEC, INTAKE_PRESSURE DEC, INTAKE_TEMPERATURE DEC, MOTOR_TEMP DEC, VSDFREQOUT DEC, VSDMOTAMPS DEC, DISCHARGE_PRESSURE1 DEC, INTAKE_PRESSURE1 DEC, INTAKE_TEMPERATURE1 DEC, MOTOR_TEMP1 DEC, VSDFREQOUT1 DEC, VSDMOTAMPS1 DEC, DISCHARGE_PRESSURE2 DEC, INTAKE_PRESSURE2 DEC, INTAKE_TEMPERATURE2 DEC, MOTOR_TEMP2 DEC, VSDFREQOUT2 DEC, VSDMOTAMPS2 DEC, CHOKE_POSITION INT, PRESSURE1 INT, PRESSURE2 DEC, TEMPERATURE1 INT, TEMPERATURE2 INT, WATER_CUT INT, LIQUID_RATE INT, WATER_RATE DEC, OIL_RATE DEC, CHOKE_POSITION1 INT, PRESSURE11 INT, PRESSURE22 INT, TEMPERATURE11 INT, TEMPERATURE22 INT, WATER_CUT1 DEC, LIQUID_RATE1 INT, WATER_RATE1 DEC, OIL_RATE1 DEC)"

        cursor.execute(SQLCreateTable)

        for row in csv[1:]:
            cursor.execute('INSERT INTO schlumberger VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', row)

finally:
    conn.close()
2025-02-27