将具有不同值的Python数组插入MySQL

时间:2014-09-17 19:40:34

标签: python mysql arrays

如何使用Python将包含不同格式元素(如date,float和int)的数组插入到数据库的MySQL表中?我对编程很陌生,所以如果我犯了任何简单的错误,请原谅我

这是我一直在尝试的代码:

f=open('xyz.txt')
d=f.readlines()
y=[x.split() for x in d]
print y
import MySQLdb
db = MySQLdb.connect(host="localhost",user='root',passwd='***',db='name')
cur = db.cursor()
var_string = ','.join('%s' * len(y))
sql = "INSERT INTO table1 VALUES ('%s');" % (var_string)
cur.execute(sql,y)

这就是我的数组的样子:

[['1','“01/01/2007”','0','0.000','10 .14','0.0000','87'],['1','“01/01 / 2007“','1','0.000','10 .93','0.0000','87'],['1','”01/01/2007“','2','0.000',' 11.78','0.2540','89'],['1','“01/01/2007”','3','0.000','13 .23','0.5080','90'],[' 1','“01/01/2007”','4','0.000','14 .43','0.0000','89'],['1','“01/01/2007”',' 5','0.000','14 .89','0.0000','88']]

2 个答案:

答案 0 :(得分:0)

(旁注:您是否考虑过某种NoSQL设置?其中大多数都能更好地处理混合类型。)

现在,由于SQL不允许不同的输入类型,您需要自己管理它。我的建议是将所有内容转换为字符串,然后转换回加载。有一个第二列给出原始数据的类型可能会有所帮助。

答案 1 :(得分:0)

MySQL"格式"你的查询。

INSERT INTO tbl_name (string,integer) VALUES('George Orwell',1984);

但只使用您在创建表时设置的格式! 不要在varchar或类似的东西中保存500个字符的字符串。

如果您在选择正确的格式时需要帮助,请在此处添加链接:http://dev.mysql.com/doc/refman/5.6/en/data-types.html

但在大多数情况下,您可以使用整数和varchar。

相关问题