我尝试着获得《军团要塞2》中玩家所拥有的每一项成就,并且我已经让它获得了成就,迭代它们,但现在没有了。这是函数和它运行的地方
Data.py
def resolveAchievements(ac):
_ac = json.loads(ac)
for achievement in _ac["playerstats"]["achievements"]:
print(achievement)
return acName.append(achievement["name"]), acDesc.append(achievement["description"]), acUnlock.append(achievement["achieved"])
Main.py
for a in acName:
addText(a)
和addText函数,如果需要的话:
def addText(t):
layout.append([
psg.Text(
text=t,
font=('Arial Bold', 14),
size=14,
expand_x=True,
justification='center'
)
])
它只打印第一个成就两次,然后显示None[]。下面是打印到终端的内容:
{'apiname': 'TF_PLAY_GAME_EVERYCLASS', 'achieved': 0, 'unlocktime': 0, 'name': 'Head of the Class', 'description': 'Play a complete round with every class.'}
{'apiname': 'TF_PLAY_GAME_EVERYCLASS', 'achieved': 0, 'unlocktime': 0, 'name': 'Head of the Class', 'description': 'Play a complete round with every class.'}
None []
我不知道发生了什么,但任何帮助是感激的!
您的return
语句在循环中,因此您在第一次迭代后立即从函数返回(终止循环)。
我猜您只是想将值附加到三个单独的列表中,然后在循环完成后返回三个列表。
def resolveAchievements(ac):
_ac = json.loads(ac)
acName = []
acDesc = []
acUnlock = []
for achievement in _ac["playerstats"]["achievements"]:
acName.append(achievement["name"])
acDesc.append(achievement["description"])
acUnlock.append(achievement["achieved"])
return acName, acDesc, acUnlock