值错误:不支持格式字符']'(0x5d)

2024-10-01 13:45:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python制作irc机器人。bot将解析XML并将其内容粘贴到channel上。这是我代码的一部分

f = open("1.xml")
data = f.read()
f.close()
domi = parseString(data)
attackerbartag = domi.getElementsByTagName('bar')[0].toxml()
attackerbar = attackerbartag.replace('<bar>','').replace('</bar>','')
attackerbar = round(float(attackerbar)2)
deffenderbar = 100 - attackerbar

attackertag = domi.getElementsByTagName('name')[1].toxml()
attacker = attackertag.replace('<name>','').replace('</name>','')

deffendertag = domi.getElementsByTagName('name')[42].toxml()
deffender = deffendertag.replace('<name>','').replace('</name>','')

attackerpointtag = domi.getElementsByTagName('points')[1].toxml()
attackerpoint = attackerpointtag.replace('<points>','').replace('</points>','')

deffenderpointtag = domi.getElementsByTagName('points')[6].toxml()
deffenderpoint = deffenderpointtag.replace('<points>','').replace('</points>','')

attackerdomtag = domi.getElementsByTagName('domination')[0].toxml()
attackerdom = attackerdomtag.replace('<domination>','').replace('</domination>','')

deffenderdomtag = domi.getElementsByTagName('domination')[4].toxml()
deffenderdom = deffenderdomtag.replace('<domination>','').replace('</domination>','')

result = 'Div.1 :: %s [ %s p ] [ %s% ] [ %s Dom ] <--> [ %s Dom ] [ %s% ] [ %s p ] %s ::' % (attacker, attackerpoint, attackerbar, attackerdom, deffenderdom, deffenderbar, deffenderpoint, deffender)
return result

我得到了ValueError: unsupported format character ']' (0x5d).

我很确定我已经关闭了所有[]

我尝试用()更改[],错误是ValueError: unsupported format character ')' (0x5d)

有人能告诉我我在哪里做的傻事吗? 谢谢你


Tags: namedatabarreplacepointsdominationattackergetelementsbytagname
2条回答

其中有两个%字符,它们不是格式化字符。您需要将其加倍以使Python忽略它:

result = 'Div.1 :: %s [ %s p ] [ %s%% ] [ %s Dom ] < > [ %s Dom ] [ %s%% ] [ %s p ] %s ::' % (attacker, attackerpoint, attackerbar, attackerdom, deffenderdom, deffenderbar, deffenderpoint, deffender)

您已经两次将[ %s% ]放在s后面。Python将其解释为%],这是无效的。

相关问题 更多 >