Ładuję...
photo
Zwycięstwo nad cholernym #XML.em: sparsowanie 700 MB zajmuje mi nieco mniej niż 7 minut, a do tego mam kod który nei będzie udręką w pielęgnacji. #ElementTree for teh win! #programowanie #python
  1. photo michuk ElementTree to coś jak JDOM dla Pythona? Mało korzystałem w Pythonie z XMLa. Ciekawi mnie czy są tu tak rozbudowane biblioteki jak jawowy Saxon czy wszelkie marshallery jak XMLbeans czy JAXB? [odpowiedz]
  2. photo szopa @michuk - ciężko mi powiedzieć, bo nie znam zupełnie bibliotek javowych. ale jestem skłonny podejrzewać, że #Python ma mniej rozbudowane biblioteki do #xml niż #java[odpowiedz]
  3. photo Mekk Brzmi prawie jak challenge. Jesteś w stanie wyspecyfikować to jako zadanko programistyczne (tj. zadać z grubsza jak ma wyglądać ten XML i jaki ma być cel parsowania)? [odpowiedz]
  4. photo szopa @Mekk - proszę bardzo. Załóż, że masz między 700 MB a 1 GB xml-a, o niezbyt skomplikowanej, ale dość upierdliwej strukturze (u mnie to jest obraz bazy danych do restowego API, czyli jest to dość drzewiaste, z danymi wstawionymi tam, gdzie w API były linki). Musisz to przerobić na ładne, pojedyncze rekordy.
    1. Program musi mieć umiarkowane wymagania pamięciowe.
    2. Musi działać w rozsądnym czasie (parsowanie to tylko pierwszy krok, później jeszcze będziesz musiał te dane przerobić).
    3. Chcesz mieć jak najmniej zależności (idealnie tylko biblioteka standardowa).
    4. Idealnie chcesz mieć iterator rekordów.
    5. Kod ten będzie używany i *zmieniany* przez wiele lat. Pielęgnować go będziesz albo Ty, albo ktoś kto będzie siedział wystarczająco blisko Ciebie, abyś ucierpiał w razie gdyby dostał napadu szału. Przez ostatnich kilka miesięcy bardzo głośno krzyczałeś o potrzebie pisania ładnego, pythonicznego kodu. Nie planujesz zmiany pracy, za to chcesz spędzić najbliższych kilka lat *miło*. [odpowiedz]
  5. photo szopa Wymagania 1-3 nie są tak naprawdę trudne do spełnienia, (4) wymaga doczytania dokumentacji. Prawdziwym wyzwaniem jest (5) :-) [odpowiedz]
  6.  
  • Promuj wpis: