【发布时间】:2017-12-05 02:25:54
【问题描述】:
所以我有一个不和谐的机器人,它允许人们从纸牌游戏中命名一张牌,如下所示:!card card name
然后,机器人根据名称构造一个图像 URL,并将其发布到频道。目前,它超级简单,不进行任何验证或任何操作,但它确实有一个我想解决的问题,那就是它不能处理撇号。
如果卡片名称包含撇号(例如“卡片名称”),我的机器人会使用 %27 创建 URL。然而,卡片 db 将撇号替换为“-”。不幸的是,我没有收到撇号,所以 string.replace("'", "-") 不起作用。
我的 IDE 在命令数组中正确显示字符串,当我从那里检索它时,它看起来像这样:Card\\'s Name
我假设它总是被转义,但是当它不是原始字符串时,IDE 会以解析的方式显示它。
我想对此进行解码/解析,以便将其转换为“card-s-name”,但我尝试过的任何方法都不起作用。
urllib.parse.decode "can't decode string", string.replace("\", "") 没有做任何事情,所以我现在有点卡住了。
如何将“card\\'s”变成“card-s”?
这是我现在使用的代码:
def get_card_url(command):
card_name = ''
for string in command:
string = urllib.parse.unquote(string)
string.replace("'", "-")
if card_name != '':
card_name += '-'
card_name += string.lower()
return "https://fiveringsdb.com/bundles/card_images/" + card_name + ".png"
我遇到错误的卡称为“Kitsuki 的方法”,并且 url 以https://fiveringsdb.com/bundles/card_images/kitsuki%27s-method.png 而不是https://fiveringsdb.com/bundles/card_images/kitsuki-s-method.png 发布到频道
我希望这有助于消除任何剩余的困惑。
【问题讨论】:
-
card\'s是您在转义字符完成工作后看到的内容。card\\'s似乎是你的初始字符串,所以"card\\'s".replace("\\'", "-")应该可以工作 -
对不起,我总是看到两个反斜杠,但是 SO 逃脱了其中一个。
标签: python python-3.x discord discord.py