如何去除FiveM玩家Discord ID列表括号并转为整数?
解决方法
先明确你的Discord ID数据类型,分两种常见场景处理:
场景1:数据是字符串格式的列表(比如从JSON读出后是"['633993765494033']")
这种情况是读取JSON时未正确解析列表结构,导致它变成了字符串。用ast.literal_eval把字符串转成真实列表,再提取元素转整数:
import ast # 从players.json获取的原始数据 discord_id_raw = "['633993765494033']" # 将字符串格式的列表转为实际列表 discord_id_list = ast.literal_eval(discord_id_raw) # 取出第一个元素并转换为整数 discord_id = int(discord_id_list[0])
场景2:数据是列表,但元素是带单引号的字符串(比如["'633993765494033'"])
直接对列表元素做字符串清洗,去掉单引号后转整数即可:
# 原始列表数据 discord_id_list = ["'633993765494033'"] # 去除单引号并转换为整数 discord_id = int(discord_id_list[0].strip("'"))
你之前的方法出错原因
- 直接转
int报错:因为你把整个列表(或字符串格式的列表)传给了int(),而int只能处理单个可转换的数值字符串,无法处理列表这类可迭代对象。 - 列表推导式只去单引号但留括号:推导式返回的还是列表结构,你需要从中提取单个元素再转整数。
内容的提问来源于stack exchange,提问作者Planetech
相关产品推荐
相关产品推荐

