使用 Python 将值发送到数据库(SenseHAT 项目)

撒旦极客

我的 Raspberry PI 3 有一个 SenseHAT,我想将一些值发送到外部数据库。

这是我的.py文件:

import time
import pymysql.cursors
from sense_hat import SenseHat

sense = SenseHat()

temperature = round(sense.get_temperature(), 1)
pressure = round(sense.get_pressure(), 1)
humidity = round(sense.get_humidity(), 1)

connection = pymysql.connect(host='HOSTNAME',
                             user='USERNAME',
                             password='PASSWORD',
                             db='DATABASE',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:

        sql = "INSERT INTO data SET dat_date=%d, dat_time=%d, dat_temperature=%d, dat_pressure=%d, dat_humidity=%d, idx_sensor=%s"
        cursor.execute(sql, (time.strftime("%Y-%m-%d"),time.strftime("%H:%M:%s"),float(temperature),float(pressure),float(humidity),int(1)))

    connection.commit()
finally:
    connection.close()

sense.show_message("T:" + str(temperature) + " P:" + str(pressure) + " H:" + str(humidity), scroll_speed=0.7)

运行 SQL 查询时出现我的问题。我在sql查询中创建并通过为变量赋值在下面的行中执行它。但是,即使我将值的类型更改为 insert (%s%d) ,我仍然会出现错误消息

这是值:

  • dat_date => MySQL 日期 (2017-12-11)
  • dat_time => MySQL 时间 (15:44:54)
  • dat_temperature => SenseHAT 的温度 (32.6)
  • dat_pressure => 来自 SenseHAT 的压力 (654.98)
  • dat_humidity => SenseHAT 的湿度 (12.6)
  • idx_sensor=> Raspberry PI ID(在本例中为1

这是错误消息:

Traceback (most recent call last):
  File "sh_sr.py", line 22, in <module>
    cursor.execute(sql, (time.strftime("%Y-%m-%d"),time.strftime("%H:%M:%s"),float(temperature),float(pressure),float(humidity),int(1)))
  File "/home/pi/.local/lib/python2.7/site-packages/pymysql/cursors.py", line 164, in execute
    query = self.mogrify(query, args)
  File "/home/pi/.local/lib/python2.7/site-packages/pymysql/cursors.py", line 143, in mogrify
    query = query % self._escape_args(args, conn)
TypeError: %d format: a number is required, not str

那么,有没有人看到我做错了什么?

(这是我第一次用 Python 开发东西。)

我正在使用 Raspbian => 最新版本 11.12.2017 和 PyMySQL 安装 pip

缩进

添加简单的报价并使用 %s

sql = "INSERT INTO data SET dat_date='%s', dat_time='%s', dat_temperature=%s, dat_pressure=%s, dat_humidity=%s, idx_sensor=%s"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Python将数据发送到生成器

如何使用Flask将数据从JS发送到Python?

使用pyserial将数据从python发送到arduino

将数据从Android库发送到主项目活动

使用EtherCard.h库将arduino数据发送到我的数据库

为什么我不能使用Python的`requests`库将“无”作为数据发送到POST请求中?

使用javaservlet将数据从数据库发送到jsp

如何使用Jquery和Ajax将Json数据发送到数据库中?

使用NodeMCU ESP8266将Arduino数据发送到mySQL数据库

使用AJAX将数据发送到数据库失败

在使用jQuery将数据发送到数据库时,如何使按钮处于活动状态?

使用Jquery / ajax将数据发送到数据库

AJAX到PHP不会使用NODEJS将数据发送到数据库

使用SqlDataSource将数据从FormView发送到我的数据库

如何使用vue.js(ajax)将数据发送到数据库

无法使用Volley将数据发送到数据库

Python脚本未从crontab将数据库日志发送到服务器

PHP-使用foreach存储会话数组的值以发送到数据库

使用Ajax将图像发送到数据库(php),而无需重新加载

使用XHR将图像发送到在线存储/数据库

我有问题使用laravel将多个用户ID发送到数据库中

使用Android将图像发送到MySQL数据库

使用Cucumber将输出发送到数据库时,如何测试组件?

使用PHP将JSON信息发送到数据库?

如何使用PHP将时间发送到MySql数据库?

如何使用php将邮件从数据库发送到多个电子邮件列表

使用意图将字符串发送到数据库时遇到麻烦

使用javascript(客户端)将图像发送到数据库

如何使用 PHP 将 HTML 输入字段发送到我的 MySQLi 数据库?

TOP 榜单

热门标签

归档