【问题标题】:ValueError: unsupported format character ']' (0x5d)ValueError: 不支持的格式字符 ']' (0x5d)
【发布时间】:2012-09-17 04:23:02
【问题描述】:

我正在尝试用 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)

谁能告诉我我在哪里制作了一个嘘声? 谢谢

【问题讨论】:

  • 也许使用真正的 xml 解析器?
  • 检查defender的拼写。

标签: python bots irc


【解决方案1】:

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

result = 'Div.1 :: %s [ %s p ] [ %s%% ] [ %s Dom ] <--> [ %s Dom ] [ %s%% ] [ %s p ] %s ::' % (attacker, attackerpoint, attackerbar, attackerdom, defenderdom, defenderbar, defenderpoint, defender)

【讨论】:

    【解决方案2】:

    您已经输入了两次[ %s% ],其中包括在s 之后的额外百分比。 Python 将其解释为 %],这是无效的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 2013-10-28
      • 2019-09-15
      相关资源
      最近更新 更多