live-de-python
live-de-python copied to clipboard
[SUGESTÃO] Live de JMESPath
Muito tempo atrás assisti ao vídeo chamado Selenium com Python palestra - Conhecendo XPATH com Renne Rocha, e com ele conheci o XPATH pela primeira vez, coisa mais linda que que me fez largar o bs4 no mesmo instante, e com ele também me foi apresentado a biblioteca parsel, biblioteca excelente esta que não só dá suporte ao XPATH e CSS Selector, como também ao assunto da vez: JMESPath - 'JamesPath'.
No entanto diferente de XPATH e CSS Selector, o alvo de expressões JMESPath são formatos JSON.
ListComps gigantes? não mais.
Demonstração
JSON:
[
{"name": "John", "age": 32, "address": {"state": "CA"}},
{"name": "James", "age": 30, "address": {"state": "CA"}},
{"name": "Jacob", "age": 46, "address": {"state": "CA"}},
{"name": "Alex", "age": 42, "address": {"state": "CA"}}
]
Python:
old_people = [
person["name"]
for person in data
if person['age'] > 30 and person['address']['state'] == 'CA'
]
JMESPath:
[?age > `30` && address.state == 'CA'].name
Materiais
- Testador: https://jmespath.org/
- Especificações: https://jmespath.org/specification.html
- Tutoriais práticos: https://jmespath.org/tutorial.html