fork download
  1. import re
  2.  
  3. st = """data/policy/line[Type="BusinessOwners"]/risk/coverage[Type="FuelHeldForSale"]/id"""
  4.  
  5. paths = []
  6. pattern = re.compile(r'(\w+)\[(\w+)=\"(\w+)\"\]')
  7. for item in st.split('/'):
  8. match = pattern.fullmatch(item)
  9. if match:
  10. paths.append(match.group(1))
  11. paths.append({match.group(2): match.group(3)})
  12. else:
  13. paths.append(item)
  14.  
  15. print(paths)
Success #stdin #stdout 0.03s 9628KB
stdin
Standard input is empty
stdout
['data', 'policy', 'line', {'Type': 'BusinessOwners'}, 'risk', 'coverage', {'Type': 'FuelHeldForSale'}, 'id']