用Python将xbee源地址存储到数据库中

2024-05-15 00:57:53 发布

您现在位置:Python中文网/ 问答频道 /正文

从一个接收运动数据的传感器连接到一个运动传感器。然后它会把数据发送到我的树莓派。如果status==“True”,有没有什么方法可以操作或拆分输出,比如状态只有True/False,地址=\x00\x13\xa2\x00@\xbbJ。在

所以如果我这么做

if status[0]['dio-0'] == True :
            print "Yes"
            cur = con.cursor()
            cur.execute("INSERT ignore into sensor(sensor_id, status) VALUES(%s,True)",(add[0]))
            con.commit()

但是存储在数据库中的地址是奇怪的字符,而不是\x00\x13\xa2\x00@\xbbJ。或者我应该用其他方法吗?在

这就是密码。在

^{pr2}$

这是输出。在

[{'dio-0': True}]
['\x00\x13\xa2\x00@\xbbJ}', [{'dio-0': True}]]
[{'dio-0': False}]
['\x00\x13\xa2\x00@\xbbJ}', [{'dio-0': False}]]

在数据库中

+------------+--------+
| sensor_id  | status |
+------------+--------+
|  ¢ @»J}    |  1     |
+------------+--------+

Tags: 数据方法falsetrue地址status传感器sensor
1条回答
网友
1楼 · 发布于 2024-05-15 00:57:53

变量sensor_id是一个字节数组,听起来像是要以人类可读的格式存储它。在

一种方法是在将其存储到数据库之前将其转换为格式化字符串。在

sensor_id = ':'.join("%02X" % ord(b) for b in add)

该语句循环遍历地址(for b in add)中的字节,将每个字节格式化为两个字符的十六进制字符串("%02X" % ord(b)),然后将这些字符串中的每一个与(':'.join())之间的冒号连接在一起。在

相关问题 更多 >

    热门问题