Python ValueError:不支持的格式字符']'(0x5d)
我正在尝试用python制作irc机器人。机器人将解析XML并将其内容粘贴到频道上。这是我代码的一部分Python ValueError:不支持的格式字符']'(0x5d),python,bots,irc,Python,Bots,Irc,我正在尝试用python制作irc机器人。机器人将解析XML并将其内容粘贴到频道上。这是我代码的一部分 f = open("1.xml") data = f.read() f.close() domi = parseString(data) attackerbartag = domi.getElementsByTagName('bar')[0].toxml() attackerbar = attackerbartag.replace('<bar>','').rep
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)
defenderbar = 100 - attackerbar
attackertag = domi.getElementsByTagName('name')[1].toxml()
attacker = attackertag.replace('<name>','').replace('</name>','')
defendertag = domi.getElementsByTagName('name')[42].toxml()
defender = defendertag.replace('<name>','').replace('</name>','')
attackerpointtag = domi.getElementsByTagName('points')[1].toxml()
attackerpoint = attackerpointtag.replace('<points>','').replace('</points>','')
defenderpointtag = domi.getElementsByTagName('points')[6].toxml()
defenderpoint = defenderpointtag.replace('<points>','').replace('</points>','')
attackerdomtag = domi.getElementsByTagName('domination')[0].toxml()
attackerdom = attackerdomtag.replace('<domination>','').replace('</domination>','')
defenderdomtag = domi.getElementsByTagName('domination')[4].toxml()
defenderdom = defenderdomtag.replace('<domination>','').replace('</domination>','')
result = 'Div.1 :: %s [ %s p ] [ %s% ] [ %s Dom ] <--> [ %s Dom ] [ %s% ] [ %s p ] %s ::' % (attacker, attackerpoint, attackerbar, attackerdom, defenderdom, defenderbar, defenderpoint, defender)
return result
我得到了ValueError:不支持的格式字符']'0x5d
我很确定我已经关闭了所有[]
我尝试使用更改[],错误为ValueError:不支持的格式字符0x5d
有人能告诉我我在哪里拍的吗?
谢谢您您已经两次放置[%s%],其中包括在s之后的额外%。Python将其解释为%],这是无效的。您已经两次放置[%s%],它在s后面包含一个额外的%。Python将其解释为%],这是无效的。其中有两个%字符不是用于格式化的字符。您需要将其加倍以使Python忽略它:
result = 'Div.1 :: %s [ %s p ] [ %s%% ] [ %s Dom ] <--> [ %s Dom ] [ %s%% ] [ %s p ] %s ::' % (attacker, attackerpoint, attackerbar, attackerdom, defenderdom, defenderbar, defenderpoint, defender)
其中有两个%的字符不是格式化字符。您需要将其加倍以使Python忽略它:
result = 'Div.1 :: %s [ %s p ] [ %s%% ] [ %s Dom ] <--> [ %s Dom ] [ %s%% ] [ %s p ] %s ::' % (attacker, attackerpoint, attackerbar, attackerdom, defenderdom, defenderbar, defenderpoint, defender)
可能使用真正的xml解析器?检查defender的拼写。可能使用真正的xml解析器?检查defender的拼写。