【问题标题】:[Python]How to deal with a string ending with one backslash?[Python]如何处理以一个反斜杠结尾的字符串?
【发布时间】:2010-11-08 06:38:11
【问题描述】:

我正在从 Twitter API 获取一些内容,但我遇到了一个小问题,实际上我有时会收到一条仅以一个反斜杠结尾的推文。 更准确地说,我正在使用 simplejson 来解析 Twitter 流。

我怎样才能逃避这个反斜杠?

根据我的阅读,这样的原始字符串不应该存在...... 即使我添加一个反斜杠(实际上是两个),我仍然会收到我怀疑的错误(因为我有奇数个反斜杠)

有什么想法吗? 我也可以忘记这些推文,但我仍然对此感到好奇。

谢谢:)

【问题讨论】:

  • 您得到的导致问题的响应样本会有所帮助。
  • tzot 说得对,r"no\problem" + "\\" 是一个很好的获取方式:no\problem\

标签: python string escaping backslash


【解决方案1】:

在字符串前面加上r(代表“原始”)将转义字符串中的所有字符。例如:

print r'\b\n\\'

会输出

\b\n\\

我是否正确理解了这个问题?

【讨论】:

    【解决方案2】:

    我猜你正在寻找类似于 PHP 中的stripslashes 的方法。所以,给你:

    Python version of PHP's stripslashes

    【讨论】:

      【解决方案3】:

      您可以尝试使用原始字符串,方法是在字符串或 re.escape() 前添加 r(因此无需转义)。

      考虑到我还没有看到回复的文字,我不太确定您需要什么。如果你自己想出的或从这里得到的方法都不起作用,你可能不得不忘记那些推文。

      【讨论】:

        【解决方案4】:

        除非您更新您的问题并返回一个真正的问题,否则我断言您除了困惑之外没有任何问题。

        您从 Tweeter API 获取字符串,因此该字符串不会显示在您的代码中。 “原始字符串”只存在于您的代码中,它是代码中的“原始字符串”,不能以反斜杠结尾。

        考虑一下:

        def some_obscure_api():
            "This exists in a library, so you don't know what it does"
            return r"hello" + "\\" # addition just for fun
        
        my_string = some_obscure_api()
        print(my_string)
        

        看到了吗? my_string 愉快地以反斜杠结尾,您的代码也无所谓。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-12
          • 2016-05-10
          • 2010-10-13
          • 2015-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多