python - 使用Python读取.txt并插入MySQL数据库时出现"Incorrect integer value..."错误

标签 python mysql csv

我正在尝试将一个 super 简单的 .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,然后从 SublimeText 重新保存为 UTM-8)。

如果我尝试像这样使用 Pandas 模块来做到这一点:

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 后不进行转换?
  • 未正确插入数据库?

最佳答案

通过这些 % 构建 sql 字符串,您不会得到所需值周围的 ''!您可以使用“{0}”和格式或任何 SQL 字符串生成器...

关于python - 使用Python读取.txt并插入MySQL数据库时出现"Incorrect integer value..."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35801603/

相关文章:

javascript - 如何使用 D3 和 javascript 从 csv 创建交互式可折叠树形图?

php - CSV 上传到 mySQL 时出现 isset 错误

python - 使用多个条件对列表列表进行排序 (Python)

java - hibernate 标准限制 :- how to fetch current and last month data

PHP : add a delete button in last column to delete a table row

c# - 使用 C# 管理大型数据库

Python subprocess.Popen 在 g++ 中编译自动添加 .cpp 文件

Python:根据来自另一个文件的字段匹配过滤行

python - 使用 Pandas 进行条件行选择

csv - 如何在IPython Notebook中加载jar依赖项