不协调.py'变为\'并且我无法再次解码

2024-10-03 00:25:27 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个不和谐机器人,它允许人们从纸牌游戏中命名一张牌,比如:!card card name 然后从bot发布一个URL,然后从该图像构建一个频道。现在,它非常简单,不做任何验证或任何事情,但它确实有一个问题我想解决,那就是它不能处理撇号。在

如果卡名包含撇号(例如“卡的名称”),我的机器人程序使用%27创建URL。然而,卡db将撇号替换为“-”。不幸的是,我没有收到撇号,所以字符串。替换(“'”,“-”)不起作用。在

当字符串在命令数组中时,我的IDE会正确地显示它,当我从那里检索到它时,它看起来是这样的:Card\\'s Name
我假设它总是转义的,但是当它不是原始字符串时,IDE会以解析的方式显示它。在

我想解码/解析这个,这样我就可以把它转换成“card-s-name”,但是我尝试过的方法都不管用。在

在urllib.parse.decode“无法解码字符串”,字符串。替换(“\”,“”)什么都没做,所以我现在有点困了。在

如何将“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's Method”,url以https://fiveringsdb.com/bundles/card_images/kitsuki%27s-method.png而不是{a2}的形式发布到通道

我希望这有助于消除任何遗留的困惑。在


Tags: 字符串namehttpscomurlstringparse机器人
1条回答
网友
1楼 · 发布于 2024-10-03 00:25:27

在我的ipython笔记本里,它工作得很好。

"card\'s".replace("\'", "-")

输出为^{cd1>}

enter image description here

编辑:

如果您对var是什么感到困惑,可以打印是的。还有然后,将转义字符用于所需的字符。

例如:
enter image description here

更新:
str.更换()返回新str,但它不会更改旧str。因此,您需要让var等于新str,然后使用var

^{pr2}$

测试:
enter image description here

但是我仍然无法重现您关于^{{cd2>}的错误

相关问题 更多 >