No PostgreSQL com JSONB você pode usar a verificação de contenção:
dict = {"telephones": [{"telephone": "54435345"}]}
user = cls.query.filter(your_table.contact_info.contains(dict)).first()
No MySQL pode ser possível usar
func
.json_contains
:(você precisa se adaptar e experimentar, certamente o caminho do MySQL, mas provavelmente também o do PostgreSQL)