规范请求\n Python 3

2024-03-28 18:32:01 发布

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

我整晚都在想这个问题,但运气不好。我假设这对更有经验的程序员来说是一个简单的问题。 我正在处理一个我可以签名的规范请求。 像这样:

canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers

但是,当我打印(规范请求)时,我得到:

method
canonical_uri
canonical_querystring
canonical_headers

但这就是我想要的:

method\ncanonical_uri\ncanonical_querystring\ncanonical_headers

顺便说一下,我使用python34,我真的很感谢你的帮助。你知道吗


Tags: 规范request经验urimethod程序员headersquerystring
2条回答

所以您不希望有“实际”的换行符,而是希望字符串中的换行符?只需在'\n'中添加第二个斜杠即可转义,'\\n'。或者在字符串前面加上r,使其成为“原始”;在字符串中,反斜杠按字面解释;r'\n'(通常用于正则表达式)。你知道吗

canonical_request = method + r'\n' + canonical_uri + r'\n' + canonical_querystring + r'\n' + canonical_headers

有关字符串文字的信息,请参阅文档中的String and byte literals。你知道吗

作为另一种更优雅的方法,您可以将字符串放在列表中,并使用escape将它们连接起来\n和add\到前导:

>>> l=['method', 'canonical_uri', 'canonical_querystring', 'canonical_headers']
>>> print '\\n'.join(l)
method\ncanonical_uri\ncanonical_querystring\ncanonical_headers

The backslash (\) character is used to escape characters that otherwise have a special meaning, such as newline, backslash itself, or the quote character.

相关问题 更多 >