我正在使用一个可以获取数据的 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'] ,它们应该不断更新,而不实际将其发布到换行符上。我尝试通过清除屏幕来解决此问题,但这不是所需的解决方案。
最佳答案
只需将 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()
关于带计时器和字符串替换的 Python 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55629997/