1

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>','').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: unsupported format character ']' (0x5d).

私はすでにすべての [ ] を閉じていると確信しています

[ ] を () で変更しようとしましたが、エラーはValueError: unsupported format character ')' (0x5d)

ブーブーを作った場所を誰か教えてもらえますか? ありがとうございました

4

2 に答える 2

3

[ %s% ]の後に余分な % を含むを 2 回入力しましたs。Python はそれを と解釈しますが%]、これは無効です。

于 2012-09-25T15:48:52.307 に答える
3

%そこには、書式設定用の文字ではない文字が 2 つあります。Python に無視させるには、2 倍にする必要があります。

result = 'Div.1 :: %s [ %s p ] [ %s%% ] [ %s Dom ] <--> [ %s Dom ] [ %s%% ] [ %s p ] %s ::' % (attacker, attackerpoint, attackerbar, attackerdom, defenderdom, defenderbar, defenderpoint, defender)
于 2012-09-25T15:49:08.670 に答える