在Python3中实现infinte循环的正确方法

2024-04-20 07:25:11 发布

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

我对python编码还很陌生,而且还在学习,所以对于很多人来说,这很可能是一个愚蠢的问题。但我要找的是逻辑,不是代码。你知道吗

我的场景: 我有一个物联网传感器,它会定期以JSON文件的形式通过串行向我发送数据。文件将始终使用相同的名称。现在我正在编写一个python脚本,以无限循环的方式读取这个JSON文件。 这个想法是,如果JSON中没有数据,那么循环应该中断并向我发送一条消息。否则,只需解析字典。你知道吗

我是这样写的,只是一次尝试。你知道吗

def readDataInLoop(self, ):
    while True:            

        try:
            # Reading json
            with open('dummyzigbee.json') as f:
                data = json.load(f)

                # Check Data: If Data is empty, exit loop with error message
                if not data:
                    print("Error!! No data recieved ...")
                    print("Conenction lost at {} ".format(time.asctime(time.localtime(time.time()))))                    
                    break                    

                else:
                    # If data is recieved then parse the data
                    self.parseData(data)
        except:
            pass

        # Give some rest to processor
        time.sleep(1)

这似乎是工作,但我正在寻找一个有效的方式。我不确定这是一个好办法还是一个坏办法。你知道吗


Tags: 文件selfjson编码dataiftimeis