live-de-python icon indicating copy to clipboard operation
live-de-python copied to clipboard

[SUGESTÃO] Live de JMESPath

Open d3cryptofc opened this issue 1 year ago • 0 comments

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

d3cryptofc avatar Jul 01 '24 18:07 d3cryptofc