ast.parse() converte código-fonte em uma árvore sintática abstrata. Ferramentas de lint, migração e análise percorrem nós para entender a estrutura sem importar o módulo analisado.
Exemplo prático
import ast
source = "{'retries': 3, 'tags': ['api', 'stable']}"
value = ast.literal_eval(source)
if not isinstance(value, dict):
raise TypeError("expected a dictionary")
print(value["retries"])
literal_eval não é eval
ast.literal_eval() aceita apenas estruturas literais, como strings, números, listas e dicionários. Depois de interpretar, valide o tipo e o esquema; JSON costuma ser melhor para intercâmbio entre sistemas.
Sem execução não significa sem risco
Entradas muito profundas ou grandes podem consumir memória e pilha. Limite bytes e profundidade antes de analisar conteúdo externo. Nunca compile ou execute uma AST recebida sem uma política estrita e um isolamento adequado.
Continue estudando
Leia também Python JSON: Guia Completo para Manipulação de Dados e Type Hints em Python: Guia Completo de Tipagem. A documentação oficial do Python, consultada em 22 de julho de 2026, detalha a API e o comportamento entre versões.