gpt4 book ai didi

Python如何检查数据库值是否相同

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:34 25 4
gpt4 key购买 nike

您好,我已经设置了这个 Firebase,它连接到一个树莓派,它根据 Firebase 数据库朗读文本。我让该函数每 5 秒运行一次,我想检查是否有新消息。我将每条消息的时间存储在数据库中,我现在的方式是检查新消息和旧消息的时间是否相同。

我的两个问题是:

有没有更好的方法来检查消息时间,看看消息是否是新的?

如何修复此代码,这样我就不会收到 UnboundLocalError:赋值前引用的局部变量“the_time”” 错误

这是我的代码

import time
import subprocess
from firebase import firebase
firebase = firebase.FirebaseApplication('----', None)

message = firebase.get('/message', None)
name = firebase.get('/name', None)
the_time = firebase.get('the_time',None)
speak_message = message+" from "+ name

def showmessage():
message=firebase.get('/message',None)
name=firebase.get('/name',None)
current_time = firebase.get('/the_time',None)
speak_message=message+' from '+name

#this is to set the audio jack on raspi
subprocess.call(['amixer','cset','numid=3','1'])

if current_time == the_time:
#message is NOT new
print 'message is NOT new'

elif current_time != the_time:
#message IS new
#Shell script to run text-to-speech
subprocess.call(['/home/pi/./speech.sh',speak_message])
the_time = current_time


time.sleep(5)
while True:
showmessage()

最佳答案

你的脚本应该可以正常工作,除了这部分中的一个小错误:

elif current_time != the_time:
#message IS new
#Shell script to run text-to-speech
subprocess.call(['/home/pi/./speech.sh',speak_message])
the_time = current_time

您正在分配给 the_time,这是一个全局变量。在您的 showmessage 函数中,您没有声明它,对吧?

要解决此问题,您必须将 the_time 声明为全局变量。

def showmessage():
global the_time
#all other stuff

这就是您需要更改的全部:)希望这有帮助!

关于Python如何检查数据库值是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19599938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com