首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“整数值不正确.”用Python读取.txt并插入MySQL db时出错

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

Stack Overflow用户
提问于 2016-03-04 16:50:29
回答 1查看 182关注 0票数 0

我试图将一个超级简单的. .csv/txt文件读入Python中,并将数据插入本地MySQL数据库。

下面是Python .csv阅读器模块:

代码语言:javascript
复制
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年,“不正确的整数值:第1行的”dimensionType“列的”dimensionType“)

下面是我正在读取的文件的链接 (从Excel2016保存到Mac作为.csv,然后再从SublimeText保存为UTM-8)。

如果我试着用Pandas模块这样做的话:

代码语言:javascript
复制
df=pd.read_csv('/users/edchigliak/desktop/baza.txt')

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

我知道这个错误:

TypeError:不是所有在字符串格式化期间转换的参数

我做错了什么?

  • 读.csv的方式不对吗?
  • 在把它们变成蟒蛇/熊猫之后,没有转换它们的值吗?
  • 没有正确地插入到数据库中?
EN

回答 1

Stack Overflow用户

发布于 2016-03-04 17:05:17

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35801603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档