我有一个包含这样的引号的字符串:
string = "\"This is my mom's vase\", said Kevin."
问题是当我在python中将它用作字符串时,它会在单引号之前添加反斜杠,如下所示:
>>> string
'"This is my mom\'s vase", said Kevin.'
>>>
为什么会发生这种情况,我该怎么办呢?
答案 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)