我正在使用pymysql
来查询具有'name':'Te\xtCorp'
条目的数据库,这是我需要保留的名称。我将它发送到json.dumps()
的其他地方,当它点击它时,它无法逃脱\x
。
在没有双重逃避其他所有内容的情况下逃脱\x
的正确方法是什么?
答案 0 :(得分:2)
这里有两个选项:
你逃避反斜杠,例如:
'Te\\xtCorp'
您可以使用原始字符串:
r'Te\xtCorp'
两者都生成:
>>> '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:
的ASCII字符
\xhh...
:十六进制值为hh...
因此,它用于编码任何ASCII字符,方法是将代码指定为十六进制值。