[英]python string adding backslash before single quotes
我有一個字符串,其中包含這樣的引號:
string = "\"This is my mom's vase\", said Kevin."
問題是當我將它用作 python 中的字符串時,它會在單引號前添加一個反斜杠,如下所示:
>>> string
'"This is my mom\'s vase", said Kevin.'
>>>
為什么會發生這種情況,我該怎么辦?
您看到的是由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.
沒有什么可以解決的! 你還在這里做什么? 向上滾動並再次閱讀說明!
它只是在REPL 中逃脫了。 如果你打印出來,它會顯示沒有添加斜線:
print(string)
# output: "This is my mom's vase", said Kevin.
我遇到了同樣的問題,我正在讀取一個文本文件,其中包含要作為響應發送的html,在郵遞員處進行測試時,將html保存到字符串變量時會被弄亂。 這僅在雙引號“時發生,單引號已正確返回,已經在這里嘗試過一切python:也將'反斜杠雙引號'字符串寫入文件
txt文件
<html>
<body>
<table width='100%'>
<tbody><tr class="gridgray" bgcolor="#f5f5f5">
郵遞員GET
"<html><body><table width='100%'><tbody><tr class=\"gridgray\" bgcolor=\"#f5f5f5\">"
我找到了解決方案,它與 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.