2012-09-25 58 views
1

我試圖用python製作irc bot。該bot將解析XML並將其內容粘貼到頻道上。這是我的代碼ValueError:不支持的格式字符']'(0x5d)

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)

任何人都可以告訴我我在哪裏做了一個噓聲? 謝謝

+0

也許使用真正的xml解析器? –

+0

檢查'defender'的拼寫。 – tripleee

回答

3

你兩次把[ %s% ],其中包括s後額外%。 Python解釋爲%],這是無效的。

3

你必須有兩種%字符是註定不會被格式化字符。您需要將其加倍以使Python忽略它:

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