“整数值不正确…”用Python读取.txt并插入MySQL db时出错

2024-10-02 08:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个超级简单的.csv/txt文件读入Python,并将数据插入本地MySQL数据库。你知道吗

这里是Python.csv reader模块:

import MySQLdb
import pandas as pd 
import numpy as np 
import xlwings as xw
import csv

# Connect to database
db = MySQLdb.connect(
    host = "localhost",
    user = "root",
    passwd = "/pwd/",
    db = "mydb",
)

sql = '''INSERT INTO dimension(dimension, dimensionType, abbreviation, translationHr, code, priority) VALUES (%s, %s, %s, %s, %s, %s)'''
cursor = db.cursor()

# Open CSV, read data
with open('/users/edchigliak/desktop/baza.txt', 'rb') as f:
    reader = csv.reader(f, delimiter=';')

# Insert into db
    for row in reader:
        cursor.execute(sql, row)
        db.commit()

sql = '''SELECT * FROM dimension'''

cursor.execute(sql)
db.close()

result = cursor.fetchall()
print result

但是,这给了我一个错误:

_mysql_exceptions.OperationalError: (1366, "Incorrect integer value: 'dimensionType' for column 'dimensionType' at row 1")

这是我正在阅读的文件的link(从Excel 2016 for Mac保存为.csv,然后从sublimitext重新保存为UTM-8)。你知道吗

如果我试着这样做:

df=pd.read_csv('/users/edchigliak/desktop/baza.txt')

for row in df:
    cursor.execute(sql, row)
    db.commit()

我得到这个错误:

query = query % tuple([db.literal(item) for item in args]) TypeError: not all arguments converted during string formatting

我做错什么了?你知道吗

  • 不是用正确的方式阅读.csv吗?你知道吗
  • 在将值转换为python/pandas后不转换它们?你知道吗
  • 没有正确插入数据库?你知道吗

Tags: 文件csvinimporttxtforexecutedb

热门问题