Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-在动态表中添加mysql条目_Python_Mysql - Fatal编程技术网

Python-在动态表中添加mysql条目

Python-在动态表中添加mysql条目,python,mysql,Python,Mysql,我想在动态mysql表中添加一些python字典数据,但我停留在第12行: ## INSERT DATA TO TABLE for key,val in j_decoded["one-wire"].items(): try: rom = key.encode('utf-8') temperatuur = val["temperatuur"] createsqltable = """CREATE TABLE IF NOT EXISTS `%s

我想在动态mysql表中添加一些python字典数据,但我停留在第12行:

## INSERT DATA TO TABLE
for key,val in j_decoded["one-wire"].items():
    try:
        rom = key.encode('utf-8')
        temperatuur = val["temperatuur"]
        createsqltable = """CREATE TABLE IF NOT EXISTS `%s` (
                 id INT PRIMARY KEY AUTO_INCREMENT,
                 created_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
                 timestamp TIMESTAMP,
                 temp FLOAT)""" % (rom)
        cursor.execute(createsqltable)
        cursor.execute("""INSERT INTO %s (timestamp, temp) VALUES (%s,%s)""",(rom,timestampdata,temperatuur))
        db.commit()
    except:     
        db.rollback()

## CLOSE THE DATABASE
db.close()
这些表将被创建。但数据永远无法证明这一点

在上面的代码之前,我有一些其他的代码可以工作,但是我对表名不满意。我在第10行放了一些`字:

temp FLOAT)""" % (`rom`)
这会将表创建为“tablename”,而不是tablename

我在第12行做了如下更改:(参见第一个“%s”)

这很好地将数据添加到了“tablename”表中

现在我删除了一些`并创建了一个OK的表,但是数据永远不会进入表中。 我读过其他人的一些帖子,但似乎无法修复(我想我已经尝试了所有的“组合”)

祝你圣诞快乐:)

2014-01-04我已将代码更改为:

cursor.execute("""INSERT INTO {0} (timestamp, temp) VALUES (%s,%s)""".format(a), (b,c))
试着改变

cursor.execute("""INSERT INTO `%s` (timestamp, temp) VALUES (%s,%s)""",(rom,timestampdata,temperatuur))

这可能只是一个字符串格式错误。如果您正在使用python 3,还有另一种方法可以做到这一点。如果可用,我建议使用python 3方法。有关更多信息,请参阅

另外,在createsqltable变量中,您需要更改

temp FLOAT)""" % (rom)


这可能会导致错误。

我尝试了不同的可能性,并提出了以下可行的解决方案:

sql = "insert into %s (timestamp, temp) values (%s)" % (a, "%s, %s")  
cursor.execute(sql,(timestampdata,temperatuur))  


我已经尝试过你的更改,但它不起作用。谢谢你给我指出python 3的不同之处。我想使用它,但对于mysql的使用,我已经读过几次,我应该坚持使用python 2.7,对吗?你可以使用python3,只要你使用正确的库。PyMySQL看起来很有希望,从他们的示例来看,它与您正在使用的库。我已经在MySQLdb、oursql和PyMySQL中尝试了python 2.7和3.2。但是我似乎无法将数据放入动态表中。我喜欢python编程,但MySQL数据库不是我喜欢的。也许有某种调试选项,所以我可以看到出了什么问题。您是否尝试过在默认的M中执行这些SQl查询ySQL控制台?我将试用这段代码,看看它是否有任何问题。mysql控制台命令,特别是动态插入命令,不等于mysqldb模块(对于我所测试的模块)。这是有效的:
cursor.execute(““INSERT INTO 28AA507A0500009E(timestamp,temp)值(%s,%s)”,(timestadata,temperatuur))
但这不是:
游标。执行(““插入%s(时间戳,温度)值(%s,%s)”,(rom,时间戳数据,温度”)
temp FLOAT)""" % (rom)
 temp FLOAT)""" % (rom,)
sql = "insert into %s (timestamp, temp) values (%s)" % (a, "%s, %s")  
cursor.execute(sql,(timestampdata,temperatuur))  
def datainsertdef(a,b,c):
cursor.execute("""INSERT INTO `{0}` (timestamp, temp) VALUES (%s,%s)""".format(a), (b,c))