¿Cómo escapar de las llaves en cuerdas f? [duplicar]
Tengo una cadena en la que me gustaría usar llaves, pero también aprovecho la función de cadenas f. ¿Existe alguna sintaxis que funcione para esto?
Aquí hay dos formas en las que no funciona. Me gustaría incluir el texto literal {bar}
como parte de la cadena.
foo = "test"
fstring = f"{foo} {bar}"
NameError: name 'bar' is not defined
fstring = f"{foo} \{bar\}"
SyntaxError: f-string expression part cannot include a backslash
Resultado deseado:
'test {bar}'
Editar: Parece que esta pregunta tiene la misma respuesta que ¿ Cómo puedo imprimir caracteres literales entre llaves en una cadena y también usar .format en ella? , pero solo puedes saberlo si sabes que str.format
usa las mismas reglas que la cadena f. Es de esperar que esta pregunta tenga valor para vincular a los buscadores de cadenas f con esta respuesta.
Aunque hay un error de sintaxis personalizado por parte del analizador, el mismo truco funciona como para llamar .format
a cadenas normales.
Utilice rizos dobles:
>>> foo = 'test'
>>> f'{foo} {{bar}}'
'test {bar}'
Se menciona en las especificaciones aquí y en los documentos aquí .