Re: Brotli
Verfasst: Mittwoch 15. Juli 2020, 00:13
Für solche tiefen Zugriff auf verschachtelte Strukturen verwende ich ja auch ganz gerne das externe `glom`-Package:
Code: Alles auswählen
#!/usr/bin/env python3
from glom import glom, Iter
clients = [
{
"id": "d6317eca-bb8d-47a2-871a-80eea6ca39b3",
"data": {
"name": "Fox Richardson",
"contact": {
"digital": {"email": "foxrichardson@aquasure.com"},
"real": {"city": "Ezel", "street": "Locust Avenue"},
},
},
},
{
"id": "2bb7d904-3b76-4cc2-97b6-f2670697482c",
"data": {
"name": "Gabrielle Fields",
"contact": {
"digital": {"email": "gabriellefields@aquasure.com"},
"real": {"city": "Barstow", "street": "Veterans Avenue"},
},
},
},
{
"id": "7bef15ff-adfe-4371-af0d-79438a42728b",
"data": {
"name": "Hess Sweeney",
"contact": {
"digital": {"email": "hesssweeney@aquasure.com"},
"real": {"city": "Loretto", "street": "Gem Street"},
},
},
},
]
def main():
template = (
"Mein Name ist {name}"
" und ich bin unter der E-Mail {email} erreichbar"
" und wohne in {city}."
)
mapping = {
"name": "data.name",
"email": "data.contact.digital.email",
"city": "data.contact.real.city",
}
for line in glom(clients, Iter(mapping).map(template.format_map)):
print(line)
if __name__ == "__main__":
main()