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()
有人能帮我弄清楚为什么上传不了吗?谢谢!
你的 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()