gpt4 book ai didi

python - 类型错误 : not all arguments converted during string formatting using MySQL and Python

转载 作者:行者123 更新时间:2023-11-30 22:09:13 25 4
gpt4 key购买 nike

我正在使用 python 脚本将文本文件导入 mysql 数据库,但我收到一个奇怪的错误并在互联网上搜索它但找不到确切的解决方案。我想创建列,有些列将像这样用负号以十进制形式存储数据

Alarmdata    fuAlarm
-1585.4 -35.3
-343.32 -54.3

出现以下错误

_mysql_exceptions.ProgrammingError: (1064, "You have an error in your
SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near ' Alarmdata,
fuel_in_l DECIMAL(5,2), fuAlarm DECIMAL(4,3), ' at line 1")

我通过将数据类型指定为空白数据解决了这个问题,但现在我遇到了这个错误。

TypeError: not all arguments converted during string formatting

我的代码如下

import os
import sys
import csv
import MySQLdb as mdb

con = mdb.connect('localhost' , 'root' , 'kami' , 'tempdat')

cursor = con.cursor()
cursor.execute('CREATE TABLE Datatmp (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, \
timestamp INT(12), pomode INT(3), modeAlarm INT(3), \
temperature_C DECIMAL(2,1), temperatureAlarm INT(3), \
switch INT(3), Powerswitch INT(3), SIM_dollar INT , \
Alarmdata INT, fuel_in_l DECIMAL(5,2), fuAlarm DECIMAL(4,3), \
next_maint DECIMAL(5,2), next_maintenanceAlarm INT(2) )');

con.commit()

file = open('//home/mysql/kami.txt', 'rb')
creader = csv.reader(txtfile.readlines()[3:], delimiter='\t')

for t in creader:
cursor.execute('INSERT INTO Datatmp(timestamp, pomode, modeAlarm,\
temperature_C, temperatureAlarm, \
switch, Powerswitch, SIM_dollar, \
Alarmdata, fuel_in_l, fuAlarm \
next_maint, next_maintenanceAlarm)\
Values(%s,%s,%s,%s,%s,%s,NULL,NULL,%s,%s,%s,\
%s,%s,%s,%s,%s,%s)', t)

file.close()
con.commit()
con.close()

类型错误意味着我没有传递足够的 %s ,但我传递了相同的数字,它不应该显示这个错误。我也是mysql和python新手,所以没解决。

最佳答案

在 MySQL 中,INT 数据类型的值范围可以从 -21474836482147483647。所以你可以简单地将数据类型 INT 放在那里。剩下的一切都将由 MySQL 处理。

关于python - 类型错误 : not all arguments converted during string formatting using MySQL and Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40665214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com