python字符串在单引号之前添加反斜杠

时间:2014-06-05 06:00:07

标签: python string quotes

我有一个包含这样的引号的字符串:

string = "\"This is my mom's vase\", said Kevin."

问题是当我在python中将它用作字符串时,它会在单引号之前添加反斜杠,如下所示:

>>> string
'"This is my mom\'s vase", said Kevin.'
>>>

为什么会发生这种情况,我该怎么办呢?

4 个答案:

答案 0 :(得分:2)

它刚刚在repl中逃脱了。如果您将其打印出来,则会显示没有添加斜杠:

print(string)
# output: "This is my mom's vase", said Kevin.

答案 1 :(得分:0)

说明

您将看到repr函数产生的字符串表示形式。 repr以有效的python文字输出字符串的方式;换句话说,您可以将repr(string)的输出复制/粘贴到python程序中而不会出现语法错误:

>>> string
'"This is my mom\'s vase", said Kevin.'
>>> '"This is my mom\'s vase", said Kevin.'  # it's valid python code!
'"This is my mom\'s vase", said Kevin.'

由于您的字符串包含单引号'和双引号",因此python必须转义这些引号之一才能生成有效的字符串文字。用与反斜杠转义双引号相同的方法:

"\"This is my mom's vase\", said Kevin."

Python而是选择转义单引号:

'"This is my mom\'s vase", said Kevin.'

当然,这两个字符串是完全相同的。这些反斜杠仅用于转义目的,它们实际上不存在于字符串中。您可以通过print输入字符串来确认这一点,该字符串将输出字符串的实际值:

>>> print(string)
"This is my mom's vase", said Kevin.

解决方案

没有什么要解决的!您还在这里做什么?向上滚动并再次阅读说明!

答案 2 :(得分:0)

我遇到了同样的问题,我正在读取一个文本文件,其中包含要作为响应发送的html,在邮递员处进行测试时,将html保存到字符串变量时被弄乱了。只有在双引号“时才会发生这种情况,单引号正确返回,python: write 'backslash double-quote' string into file也在这里尝试过所有

Txt文件

<html>
<body>
    <table width='100%'>
        <tbody><tr class="gridgray" bgcolor="#f5f5f5">

邮递员GET

"<html><body><table width='100%'><tbody><tr class=\"gridgray\" bgcolor=\"#f5f5f5\">"

答案 3 :(得分:0)

我找到了解决方案,它与repr(string)无关,正如@ Aran-Fey提到的那样,它与API和Jsons响应有关。

正确的方法是您不返回字符串或jsons转储,而是HTTP协议在您提到时解释的响应:\“(回退每个字符串)。

解决方案是按照以下方式做出http响应:

from flask import request, jsonify, make_response
from flask_restful import Resource
from flask_api import status

class employeeHiring(Resource):
    def post(self):
    #YOUR CODE ....
    return make_response(jsonify({'status': 'success', 'my Dict': dict}), status.HTTP_201_CREATED)