如何在Python中转义'\ x'?

时间:2017-06-19 21:57:41

标签: python json escaping

我正在使用pymysql来查询具有'name':'Te\xtCorp'条目的数据库,这是我需要保留的名称。我将它发送到json.dumps()的其他地方,当它点击它时,它无法逃脱\x

在没有双重逃避其他所有内容的情况下逃脱\x的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

这里有两个选项:

  1. 逃避反斜杠,例如:

    'Te\\xtCorp'
    
  2. 您可以使用原始字符串

    r'Te\xtCorp'
    
  3. 两者都生成:

    >>> 'Te\\xtCorp'
    'Te\\xtCorp'
    >>> r'Te\xtCorp'
    'Te\\xtCorp'
    

    或打印:

    >>> print(r'Te\xtCorp')
    Te\xtCorp
    

    请注意,为了检查字符串的内容,您应该使用print(..)语句,否则您将获得该字符串的repr(..)表示。例如:

    >>> print(json.dumps(r'te\xt'))
    "te\\xt"
    >>> print(json.loads(json.dumps(r'te\xt')))
    te\xt
    

    正如人们可以阅读documentation on String literals

      

    \xhh...:十六进制值为hh...

    的ASCII字符

    因此,它用于编码任何ASCII字符,方法是将代码指定为十六进制值。