带有计时器和字符串替换的Python请求

时间:2019-04-11 10:11:35

标签: python json python-requests

我正在使用API​​来提取数据。从数据输出中,我试图获取特定部分,以便可以将其很好地放置在格式化文本中。 我想每5秒获取一次数据,因此可以获得最新信息。我不希望在第一次运行的输出下方提示数据,而是将当前值替换为更新后的值。 由于我对python非常不满意,我希望有人能给我一些建议。

import requests
import threading

def dostuff()
      threading.Timer(5.0, dostuff).start()
      r = requests.get('https://api')
      data = r.json()
      print("Amount:", data['amount'])
      print("Games played:", data['matches'])

dostuff()

这很好。它只是将输出相互发布。 我希望所有数据都是静态的,但data ['amount']和data ['matches']除外,它们应该不断更新,而不必实际在换行符上发布。我试图通过清除屏幕来解决此问题,但这不是所需的解决方案。

1 个答案:

答案 0 :(得分:0)

只需在您的打印对帐单中添加end='\r'

import requests
import threading
import random

def dostuff():
      threading.Timer(1.0, dostuff).start()
      # replaced as actual api not posted
      data = {
        'amount': round(random.random(), 2),
        "matches": round(random.random(), 2)
      }
      print("Amount: {} Games played: {}".format(
        data['amount'], 
        data['matches']
      ), end='\r')

dostuff()