python - 如何在while循环之外使用变量
问题描述
当我运行脚本时,没有错误,但没有打印或记录任何内容,即使实际上传了模型。
import os
import requests
import sys
from colorama import Fore
os.system('cls')
while True:
info = requests.get("https://search.roblox.com/catalog/json?CatalogContect=2&Category=6&SortType=3&ResultsPerPage=1").json()
if info[0]['Name'] == "DreamGrim":
pass
elif info[0]['Name'] == ".gg/Fgj3VRGapz":
pass
else:
print(f"[{Fore.LIGHTGREEN_EX}+{Fore.RESET}] Logged model: " + str(info[0]['Name']) + " | " "https://www.roblox.com/library/" + str(info[0]['AssetId']) + "/" + str(info[0]['Name']))
with open('logs.txt', 'a') as f:
f.write(f"\n[+] Logged model: " + str(info[0]['Name']) + " | " "https://www.roblox.com/library/" + str(info[0]['AssetId']) + "/" + str(info[0]['Name']))
如何在不循环日志的情况下完成这项工作?
如果我把它放在while True:
循环中,日志开始循环并且会发生这样的事情:
[+] Logged model: Hot Chocolate | https://www.roblox.com/library/7881318998/Hot Chocolate
[+] Logged model: Hot Chocolate | https://www.roblox.com/library/7881318998/Hot Chocolate
[+] Logged model: Hot Chocolate | https://www.roblox.com/library/7881318998/Hot Chocolate
[+] Logged model: Hot Chocolate | https://www.roblox.com/library/7881318998/Hot Chocolate
[+] Logged model: Hot Chocolate | https://www.roblox.com/library/7881318998/Hot Chocolate
解决方案
您必须在脚本进行下一步之前终止 while 循环。如果您尝试运行以下代码,您将得到重复的 1 和没有 2:
while True:
print(1)
print(2)
构建代码的更好方法是先获取信息,然后遍历它:
info = requests.get("https://search.roblox.com/catalog/json?CatalogContect=2&Category=6&SortType=3&ResultsPerPage=1").json()
for result in info:
if result['Name'] == "DreamGrim":
pass
...
推荐阅读
- javascript - Javascript代码在联系表单中不起作用
- python - Python - 在我的数据框上使用 isin 会引发错误
- python - 应用文件夹结构后的pyVisa TypeError
- python - 使用python pandas在excel中的多张表中写入数据
- mongodb - 显示所有 5 年以上的汽车
- elasticsearch - 对 ELK 集群使用 fail2ban?
- javascript - 为什么我的 javascript 变量显示在浏览器中?
- python - 如何从 python 文件中导入所有类和方法?
- touch - 触摸事件 - 我可以获得触摸/手指的大小吗?
- sql - 将多行转换为单个数组