2009-12-15 9 views
15

Quiero comprobar si la cadena dada es de comillas simples o dobles. Si es una comilla simple, quiero convertirla para que sea una comilla doble, de lo contrario tiene que ser la misma comilla doble.Convertir secuencia de una sola comilla a cadena de comillas dobles

+3

No estoy convencido de todo el mundo es la interpretación de su pregunta la manera que quería. ¿Estas cadenas contienen estas comillas simples y dobles * como parte del contenido *? La mejor manera de explicar su pregunta sería incluir algunos ejemplos de qué entrada tiene, cómo desea que aparezca la salida, etc. Si es posible, copie y pegue de una sesión real de la consola de Python para que no haya ninguna. forma en que podemos confundir lo que quieres decir. –

Respuesta

5

La diferencia es solo en la entrada. Ellos son lo mismo.

s = "hi" 
t = 'hi' 
s == t 

verdadera

incluso se puede hacer:

"hi" == 'hi' 

verdadera

Proporcionar ambos métodos es útil porque se puede tener, por ejemplo su cadena contiene ' o " directamente sin escaparse.

+0

Del mismo modo, tampoco hay diferencia entre la cadena citada regularmente ('" foo "') y la cadena de comillas triples ('" "" foo "" "'). –

+0

@Brain 'json.dumps ('dog')' muestra ''" dog "'' en el archivo pero quiero '" dog "'. ¿Como hacer eso? – chandresh

10

No hay diferencia entre las restricciones de "comillas simples" y "comillas dobles" en Python: ambos se analizan internamente a los objetos de cadena.

quiero decir:

a = "European Swallow" 
b = 'African Swallow' 

son internamente objetos de cadena.

Sin embargo, es posible que desee agregar una cotización adicional dentro de un objeto de cadena, de modo que el contenido aparezca cuando se imprima/exporte?

c = "'Unladen Swallow'" 

?

Ah - dado el clarifciation (publicado como commetn por Kumar, abajo):

Si usted tiene una mezcla de frases dentro de una cadena como:

a = """ Feliz "Navidad"! feliz año nuevo " """

continuación, puede utilizar el 'método de sustitución' para convertir a continuación, todo en un tipo:

a = a.replace('"', "'") 

Si le sucede que tiene anidado cuerdas, luego vuelva a colocar abetos t las cotizaciones actuales cotizaciones a escapado, y más tarde las citas otuer:

a = """This is an example: "containing 'nested' strings" """ 
a = a.replace("'", "\\\'") 
a = a.replace('"', "'") 
+0

Gracias en primer lugar En realidad estoy recibiendo el la cadena de comillas simples, dobles cuerdas citadas de forma dinámica y también estoy usando urljoin (dublequote, comilla simple) Así que aquí problema del revestimiento, la salida es la combinación tanto pero yo lo necesiten, tan solo – Kumar

+3

Al utilizar 'json', hace MUCHA diferencia entre una cadena en' '' 'y' "" .' – chandresh

+1

'json.dumps ('dog')' muestra ''" dog "'' en el archivo pero quiero ' "perro" '. ¿Como hacer eso? – chandresh

2

En Python, no hay ninguna diferencia entre cadenas que sean simples o dobles citado, así que no sé por qué querría hacer esto . Sin embargo, si realmente quiere decir caracteres de comillas simples dentro de una cadena, entonces para reemplazarlos con comillas dobles, haría esto: mystring.replace('\'', '"')

+1

Me gusta 'string.replace (" '",'" ') 'ligeramente mejor — tiene un bonito patrón alternado de comillas en él :-). –

+0

muchas gracias gracias primero En realidad estoy obteniendo la cadena de comillas simples, comillas dobles citadas dinámicamente y también estoy usando urljoin (dublequote, singlequote) así que aquí estoy frente a un problema el resultado es la combinación de ambos. .. Muchas gracias – Kumar

+0

Gracias por responder la pregunta en lugar de entrar en gran detalle sobre cómo python interpreta las comillas. Tenía un caso de uso donde un archivo necesitaba sus comillas dobles re colocado con comillas simples para que pueda pasarse a otro idioma que sea sensible al tipo de cita. –

6

Parece que está trabajando con json. Yo sólo asegúrese de que siempre es un doble quouted así:

doubleQString = "{0}".format('my normal string') 
with open('sampledict.json','w') as f: 
    json.dump(doubleQString ,f) 

Aviso estoy usando dump, nodumps.

Sampledict.json se verá así:

"my normal string" 
Cuestiones relacionadas