cadena de Python que agrega barra invertida antes de comillas simples

Tengo una cadena que contiene citas como esta:

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

El problema es que cuando lo uso como una cadena en Python, agrega una barra invertida antes de las comillas simples, como se ve aquí:

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

¿Por qué sucede esto y qué puedo hacer al respecto?

Se acaba de escapar en la respuesta. Si lo imprimes, se mostrará que no se ha agregado una barra:

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

La explicación

Lo que estás viendo es la representación de tu cadena producida por la función repr . repr genera cadenas de tal manera que sean literales python válidos; en otras palabras, puede copiar / pegar la salida de repr(string) en un progtwig python sin obtener un error de syntax:

 >>> 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.' 

Debido a que su cadena contiene comillas simples y dobles " , Python tiene que escapar de una de esas comillas para producir un literal de cadena válido. De la misma manera que escapó de sus comillas dobles con barras invertidas:

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

Python, en cambio, elige escapar de las comillas simples:

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

Por supuesto, ambas cadenas son completamente idénticas. Esas barras invertidas solo están allí para fines de escape, en realidad no existen en la cadena. Puede confirmar esto print la cadena, que genera el valor real de la cadena:

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

La solución

¡No hay nada que resolver! ¿Qué sigues haciendo aquí? ¡Desplázate y lee la explicación otra vez!