在while循环内执行Python请求,而不会中断或减慢循环

时间:2019-06-23 08:03:59

标签: python json while-loop get

我正在尝试创建一个while循环语句,该语句将从互联网上获取数据,假设是一个状态,并将根据发布到系统的状态运行该循环。

目前,我能够从Internet上获取数据并通过将其解析为JSON格式来识别状态。我想做的是在状态等于0的情况下执行循环,并持续检查状态而不会中断或减慢循环速度。 (我的意思是我希望循环连续运行一秒钟而不会中断)。

这是我正在使用的当前代码,用于从服务器获取数据并用作循环的触发点。

def movement(status):
    print('movement_oaaut')
    r1 = requests.get('http://aviarthardph.net/robot/table.php?tableInfo')
    data1 = r1.json()
    print(data1['status'])
    while(data1['status'] == '0' or data1['status'] == 0):
    print('galaw')
    print ('movement_in')
      while m.farTrack() == '1101':
        print ("Left")
        myData = ""
        m.left(0.1)
        break
      while m.farTrack() == '1011':
        print ("Right")
        myData = ""
        m.right(0.1)
        break 
      while m.farTrack() == '1110':
        print ("Right")
        myData = ""
        m.right(0.1)
        break 
      while m.farTrack() == '0111':
        print ("Left")
        myData = ""
        m.left(0.1)
        break 
      while m.farTrack() == '0011':
        print ("Left")
        myData = ""
        m.left(0.1)
        break
      while m.farTrack() == '1100':
        print ("Right")
        myData = ""
        m.right(0.1)
        break
      while m.farTrack() == '0110':
        print ("Right")
        myData = ""
        m.right(0.1)
        break
      while m.farTrack() == '0010':
        print ("Right")
        myData = ""
        m.right(0.1)
        break
      while m.farTrack() == '1111':#if counter
        print ("Left")
        myData = ""
        m.left(0.1)
        break
      while m.lineTrack() == '1110':
        print ("Right")
        myData = ""
        m.right(0.1)
        break

我已经尝试过在while循环中添加新请求,就像这样。

def movement(status):
print('movement_oaaut')
r1 = requests.get('http://aviarthardph.net/robot/table.php?tableInfo')
data1 = r1.json()
print(data1['status'])
while(data1['status'] == '0' or data1['status'] == 0):
print('galaw')
print ('movement_in')
  while m.farTrack() == '1101':
    print ("Left")
    myData = ""
    m.left(0.1)
    break
    r1 = requests.get('http://aviarthardph.net/robot/table.php?tableInfo')
    data1 = r1.json()

但是,每当我运行循环时,都会有2秒的延迟。就像我说的一样,我希望循环能够连续运行而没有1秒的延迟,并且可以同时获取Internet中的状态。

我是Python的初学者。

0 个答案:

没有答案