Como escapar caracteres de chaves ({}) em uma string ao usar .format (ou f-string)?

Ana Maria Gomes
3 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com os métodos de formatação de strings do Python, como .format() ou f-strings, você pode se deparar com a situação em que precisa incluir chaves literais {} no seu resultado. Como as chaves são usadas na sintaxe desses métodos de formatação para definir espaços reservados para a substituição de variáveis, você precisa de uma maneira de dizer ao Python que deseja incluir um caractere de chave no resultado, e não como um espaço reservado. Veja como você pode escapar chaves em suas strings.

Escapando Chaves em .format()

Para incluir chaves literais em uma string que usa o método .format(), você precisa duplicar cada chave. Isso significa que, onde quer que você queira que uma única { ou } apareça na string final, você deve usar {{ ou }} na string que está sendo formatada.

Aqui está um exemplo simples:

# Maneira correta de escapar chaves com .format()
formatted_string = "{{ Olá }} {0}"
print(formatted_string.format(42))
Testar

Isso produzirá a saída:

{ Olá } 42

Escapando Chaves em f-strings

Com a introdução das f-strings no Python 3.6, a formatação de strings se tornou ainda mais direta. No entanto, o mesmo princípio de duplicar as chaves se aplica quando você quer incluí-las literalmente na sua string.

Veja como escapar chaves com uma f-string:

# Maneira correta de escapar chaves com f-strings
n = 42
print(f"{{ Olá }} {n}")
Testar

E a saída será:

{ Olá } 42

Se você estiver lidando com expressões dentro das chaves e ainda quiser incluir chaves literais, precisará usar chaves triplas:

# Usando expressões com chaves literais em f-strings
hello = "OLÁ"
print(f"{{{hello.lower()}}}")
Testar

Isso resultará na saída:

{ola}

Resumo

Para resumir, quando você precisar incluir chaves em uma string ao usar .format() ou f-strings, lembre-se de duplicar cada chave. Esse truque simples permite que você incorpore chaves literais em suas strings formatadas sem confundi-las com espaços reservados para a substituição de variáveis. Seja formatando strings para saída ou para uso dentro dos seus programas Python, saber como escapar caracteres especiais como chaves é essencial para um código claro e livre de erros.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial