Discord Python开发:如何移除输出的历史用户名旁的方括号和单引号
问题原因
你拿到的getpastuser是Python列表类型,直接嵌入f-string输出时会默认调用列表的字符串转换方法,自动带上方括号、元素两侧的单引号,就是你现在看到的效果。
解决方法
用Python字符串的join()方法把列表里的所有用户名拼接成你想要的纯文本格式即可,支持自定义分隔符,这里以常用的逗号加空格分隔为例。
修改后的代码
@client.command() async def getinfo(ctx, name): url = f'https://api.mojang.com/users/profiles/minecraft/{name}' response = requests.get(url) uuid = response.json()['id'] url2 = f'https://api.hypixel.net/player?key=885e4c42-24d4-443a-93a8-ff25483cd6cc&uuid={uuid}' response2 = requests.get(url2) # END POINTS # getuser = response2.json()['player']['displayname'] getpastuser = response2.json()['player']['knownAliases'] # 拼接历史用户名字符串 past_usernames_str = ', '.join(getpastuser) ########### await ctx.send(f'Username: {getuser}\nPast Usernames: {past_usernames_str}')
最终输出效果
Username: 35days Past Usernames: UsernameIsntUsed, hqcc, 35days
如果需要其他分隔样式,替换join方法的参数即可:
- 用中文顿号分隔:把
', '改成'、' - 用换行分隔:把
', '改成'\n'
提示:你当前把Hypixel API密钥硬编码在代码里有泄露风险,建议后续把密钥存到环境变量或者独立的配置文件中调用,避免密钥被盗用。
内容的提问来源于stack exchange,提问作者cdnAshton
相关产品推荐
相关产品推荐

