Выполнять запросы Python внутри цикла while, не прерывая и не замедляя цикл - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь сделать оператор while, который будет извлекать данные из Интернета, скажем, статус, и будет запускать цикл в зависимости от статуса, отправленного в систему.

В настоящее время я смог получить данные из Интернета и определить статус, проанализировав их в формате 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 секунде, и одновременно проверял состояние в Интернете.

Я новичок в Python.

...