更新澄清
我必须从服务器复制功能。这个旧服务器的响应之一是http://test.muchticket.com/api/?token=carlos&method=ventas&ESP=11,除了双斜杠应该是单一的。
更新结束
更新第2号以澄清
然后这个变量转到一个字典,用它来转储到HttpResponse
return HttpResponse(json.dumps(response_data,sort_keys=True), content_type="application/json")
我讨厌我的工作。
更新结束
我需要将'http:\/\/shop.muchticket.com\/'
存储在变量中。然后将其保存在字典中。我尝试了几种不同的方法,但它们似乎都没有用,这里有一些我尝试过的例子:
url = 'http:\/\/shop.muchticket.com\/'
print url
>> http:\\/\\/shop.muchticket.com\\/
使用原始
url = r'http:\/\/shop.muchticket.com\/'
print url
>> http:\\/\\/shop.muchticket.com\\/
使用转义字符
url = 'http:\\/\\/shop.muchticket.com\\/'
print url
>> http:\\/\\/shop.muchticket.com\\/
原始和转义字符
url = r'http:\\/\\/shop.muchticket.com\\/'
print url
>> http:\\\\/\\\\/shop.muchticket.com\\\\/
转义字符并解码
url = 'http:\\/\\/shop.muchticket.com\\/'
print url.decode('string_escape')
>> http:\\/\\/shop.muchticket.com\\/
仅解码
url = 'http:\/\/shop.muchticket.com\/'
print url.decode('string_escape')
>> http:\\/\\/shop.muchticket.com\\/
答案 0 :(得分:2)
最好的方法是不使用任何转义序列
>>> s = 'http://shop.muchticket.com/'
>>> s
'http://shop.muchticket.com/'
>>> print(s)
http://shop.muchticket.com/
与"其他"不同。语言,你不需要在Python中转义正斜杠(/
)!
如果你需要正斜杠那么
>>> s = 'http:\/\/shop.muchticket.com\/'
>>> print(s)
http:\/\/shop.muchticket.com\/
注意:当您在解释器中输入s
时,它会为您提供repr
输出,从而获得转义的正斜杠
>>> s
'http:\\/\\/shop.muchticket.com\\/' # Internally stored!!!
>>> print(repr(s))
'http:\\/\\/shop.muchticket.com\\/'
因此,拥有一个\
足以将其存储在变量中。
正如J F S所说,
为避免含糊不清,请使用原始字符串文字或转义 如果你想在字符串中使用文字反斜杠,则使用反斜杠。
因此你的字符串将是
s = 'http:\\/\\/shop.muchticket.com\\/' # Escape the \ literal
s = r'http:\/\/shop.muchticket.com\/' # Make it a raw string
答案 1 :(得分:1)
如果字符串中需要两个字符:反斜杠(REVERSE SOLIDUS
)和正斜杠(SOLIDUS
)则所有三个 Python字符串文字生成相同的字符串对象:
>>> '\/' == r'\/' == '\\/' == '\x5c\x2f'
True
>>> len(r'\/') == 2
True
编写它的最佳方式是:r'\/'
或'\\/'
。
原因是反斜杠是字符串文字中的一个特殊字符(你在Python源代码中编写的东西(通常是手工编写))如果后跟某些字符,例如{{ 1}}是单个字符(换行符),'\n'
也是单个字符(反斜杠)。但'\\'
不是转义序列,因此它是两个字符。为避免歧义,请使用反斜杠没有特殊含义的原始字符串文字'\/'
。
REPL在字符串上调用r'\/'
来打印它:
repr
>>> r'\/'
'\\/'
>>> print r'\/'
\/
>>> print repr(r'\/')
'\\/'
显示您的Python字符串文字(如何在Python源代码中编写它)。 repr()
是一个两个字符的字符串,而不是三个字符串。不要混淆用于创建字符串的字符串文字和字符串对象本身。
并测试理解:
'\\/'
它显示字符串表示的表示。
答案 2 :(得分:1)
对于Python 2.7.9,运行:
url = "http:\/\/shop.muchticket.com\/"
print url
结果:
>> http:\/\/shop.muchticket.com\/
您使用的Python版本是什么?从Bhargav Rao's answer开始,它似乎也适用于Python 3.X,所以也许这是一些奇怪的导入?