python所有变量更新_在python中,如何动态更新变量?

您正在使用一个id(而不是一个id列表)在元组上循环:((1424794931452.0,), (1424794931645.0,), (1424794931821.0,), (1424794932014.0,), (1424794932189.0,)

因此每个i都被设置为其中一个元组。通过使用索引或在for循环赋值中添加逗号来提取标识:

^{pr2}$

或者for i, in data:

dt = datetime.fromtimestamp(i // 1000)

s = dt.strftime('%Y-%m-%d %H:%M:%S')

sql2 = "UPDATE accelerometer SET test = " + s + "WHERE _id=" + i

cursor.execute(sql2)

您应该在这里真正使用SQL参数而不是字符串连接;然后可以重用SQL语句:sql2 = "UPDATE accelerometer SET test = ? WHERE _id=?"

for i, in data:

dt = datetime.fromtimestamp(i // 1000)

cursor.execute(sql2, (i, dt))

在这里我做了两个假设:您的数据库驱动程序使用?作为占位符语法(可以改为%s),并且它本机支持datetime对象(现在大多数都可以),所以您不需要先使用datetime.strftime()来生成字符串。在

语句重用可以更进一步,因为数据库只需解析一次查询,并且只需生成一个查询计划;这加快了重复执行的速度。在

使用SQL参数还有另一个非常重要的优点:它可以防止SQL注入攻击(攻击者添加引号和其他SQL语句)。对于你的具体意见,这不是一个太大的问题,但应始终牢记在心。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值