Skip to content

Commit e53b4f2

Browse files
Improve parsing
1 parent e455692 commit e53b4f2

File tree

3 files changed

+28
-25
lines changed

3 files changed

+28
-25
lines changed

collecte/postes_plage_snsm/convert.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ def parse_coordinates(self, value):
2929

3030
def parse(self):
3131
with open(self.filepath, 'r') as f:
32-
soup = BeautifulSoup(f, 'lxml')
33-
for placemark in soup.folder.find_all('placemark'):
32+
soup = BeautifulSoup(f, 'xml')
33+
for placemark in soup.kml.Document.Folder.find_all('Placemark'):
3434
poste = {}
3535
poste['nom'] = placemark.find('name').text.strip()
3636
poste['latitude'], poste['longitude'] = self.parse_coordinates(
3737
placemark.find('coordinates')
3838
)
39-
for data in placemark.find_all('data'):
39+
for data in placemark.ExtendedData.find_all('Data'):
4040
key, value = data['name'], data.text.strip()
4141
if key != 'gx_media_links':
4242
cleaned_key = self.clean_key(key)

collecte/postes_plage_snsm/test_convert.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ def test_parse(self):
1717
output_file = '/tmp/out.csv'
1818
KMLConverter(input_file).to_csv(output_file)
1919

20-
assert_frame_equal(pd.read_csv(test_file), pd.read_csv(output_file))
20+
assert_frame_equal(
21+
pd.read_csv(test_file, encoding='utf-8'),
22+
pd.read_csv(output_file, encoding='utf-8')
23+
)
2124

2225
os.remove(output_file)

tests/files/snsm-postes-secours.csv

+21-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
22
1,06220,ALPES-MARITIMES,,,2,PLAGE DU SOLEIL,VALLAURIS
33
2,06220,ALPES-MARITIMES,,,5,PLAGE DU MIDI,VALLAURIS
4-
3,06590,ALPES-MARITIMES,,,3,,THEOULE SUR MER
4+
3,06590,ALPES-MARITIMES,,,3,POSTE D'INTERVENTION - THEOULE SUR MER,THEOULE SUR MER
55
4,06590,ALPES-MARITIMES,,,5,AIGUILLE,THEOULE SUR MER
66
5,06590,ALPES-MARITIMES,,,3,MIRAMAR,THEOULE SUR MER
77
6,06590,ALPES-MARITIMES,,,6,SUVERET,THEOULE SUR MER
@@ -40,29 +40,29 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
4040
39,17000,CHARENTE-MARITIME,,,4,CHEF DE BAIE,LA ROCHELLE
4141
40,17000,CHARENTE-MARITIME,,,3,LA CONCURRENCE,LA ROCHELLE
4242
41,17690,CHARENTE-MARITIME,,,3,PLATERE,ANGOULINS-SUR-MER
43-
42,20110,CORSE DU SUD,,,4,,PROPRIANO
43+
42,20110,CORSE DU SUD,,,4,POSTE D'INTERVENTION - PROPRIANO,PROPRIANO
4444
43,20110,CORSE DU SUD,,,4,BELVEDERE-CAMPOMORO,BELVEDERE CAMPOMORO
4545
44,20110,CORSE DU SUD,,,3,LE LIDO,PROPRIANO
4646
45,20111,CORSE DU SUD,,,3,LISCIA,CALCATOGGIO
47-
46,20115,CORSE DU SUD,,,3,,PIANA
47+
46,20115,CORSE DU SUD,,,3,PLAGE D'ARONE,PIANA
4848
47,20128,CORSE DU SUD,,,3,AGOSTA PLAGE,ALBITRECCIA
4949
48,20130,CORSE DU SUD,,,3,PLAGE DU PERO,CARGESE
5050
49,20140,CORSE DU SUD,,,2,PORTO POLLO,SERRA DI FERRO
5151
50,20150,CORSE DU SUD,,,3,PORTO,OTA
5252
51,20160,CORSE DU SUD,,,3,SAGONE,VICO
5353
52,20160,CORSE DU SUD,,,4,ESIGNA,COGGIA
5454
53,20169,CORSE DU SUD,,,3,BALISTRA,BONIFACIO
55-
54,22240,,,,3,PLAGE DES GREVES,PLEVENON
56-
55,22310,,,,4,,PLESTIN LES GREVES
57-
56,22380,,,,3,,ST CAST LE GUILDO
58-
57,22380,,,,4,GRANDE PLAGE,ST CAST LE GUILDO
59-
58,22560,,,,3,TRESMEUR,TREBEURDEN
60-
59,22560,,,,2,PORS TERMEN,TREBEURDEN
61-
60,22700,,,,3,PERROS GUIREC,PERROS GUIREC
62-
61,22730,,,,3,GREVE BLANCHE,TREGASTEL
63-
62,22730,,,,2,COZ PORS,TREGASTEL
64-
63,22770,,,,4,SAINT-SIEU,LANCIEUX
65-
64,29217,FINISTÈRE,,,3,,LE CONQUET
55+
54,22240,CÔTES-D'ARMOR,,,3,PLAGE DES GREVES,PLEVENON
56+
55,22310,CÔTES-D'ARMOR,,,4,LA ROCHE D'ARGENT,PLESTIN LES GREVES
57+
56,22380,CÔTES-D'ARMOR,,,3,POSTE D'INTERVENTION ST CAST LE GUILDO,ST CAST LE GUILDO
58+
57,22380,CÔTES-D'ARMOR,,,4,GRANDE PLAGE,ST CAST LE GUILDO
59+
58,22560,CÔTES-D'ARMOR,,,3,TRESMEUR,TREBEURDEN
60+
59,22560,CÔTES-D'ARMOR,,,2,PORS TERMEN,TREBEURDEN
61+
60,22700,CÔTES-D'ARMOR,,,3,PERROS GUIREC,PERROS GUIREC
62+
61,22730,CÔTES-D'ARMOR,,,3,GREVE BLANCHE,TREGASTEL
63+
62,22730,CÔTES-D'ARMOR,,,2,COZ PORS,TREGASTEL
64+
63,22770,CÔTES-D'ARMOR,,,4,SAINT-SIEU,LANCIEUX
65+
64,29217,FINISTÈRE,,,3,POSTE D'INTERVENTION  LE CONQUET,LE CONQUET
6666
65,29233,FINISTÈRE,,,3,CLEDER,CLEDER
6767
66,29241,FINISTÈRE,,,3,PLAGE DES SABLES BLANCS,LOCQUIREC
6868
67,29241,FINISTÈRE,,,2,FOND DE LA BAIE,LOCQUIREC
@@ -84,7 +84,7 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
8484
83,30240,GARD,,,5,RIVE GAUCHE,LE GRAU-DU-ROI
8585
84,30240,GARD,,,3,PORT-CAMARGUE NORD,LE GRAU-DU-ROI
8686
85,30240,GARD,,,4,PORT-CAMARGUE SUD,LE GRAU-DU-ROI
87-
86,30240,GARD,,,5,,LE GRAU-DU-ROI
87+
86,30240,GARD,,,5,POINTE DE L'ESPIGUETTE,LE GRAU-DU-ROI
8888
87,33120,GIRONDE,,,5,PLAGE DE THIERS,ARCACHON
8989
88,33120,GIRONDE,,,5,PLAGE DE PEREIRE,ARCACHON
9090
89,33120,GIRONDE,,,5,LE MOULLEAU,ARCACHON
@@ -101,7 +101,7 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
101101
100,33590,GIRONDE,,,7,PLAGE SUD EURONAT,GRAYAN ET L HOPITAL
102102
101,33780,GIRONDE,,,1,SUD,SOULAC SUR MER
103103
102,33780,GIRONDE,,,3,CENTRE,SOULAC SUR MER
104-
103,33780,GIRONDE,,,1,,SOULAC SUR MER
104+
103,33780,GIRONDE,,,1,L'AMELIE,SOULAC SUR MER
105105
104,33930,GIRONDE,,,17,MONTALIVET,VENDAYS MONTALIVET
106106
105,34250,HÉRAULT,,,3,SARRAIL,PALAVAS LES FLOTS
107107
106,34250,HÉRAULT,,,3,SAINT PIERRE,PALAVAS LES FLOTS
@@ -114,7 +114,7 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
114114
113,34280,HÉRAULT,,,4,GRAND TRAVERS,MAUGUIO
115115
114,34280,HÉRAULT,,,4,LA ROQUILLE,MAUGUIO
116116
115,34280,HÉRAULT,,,7,DE GRASSE,MAUGUIO
117-
116,34280,HÉRAULT,,,5,,MAUGUIO
117+
116,34280,HÉRAULT,,,5,ROCADE D'AVRANCHE,MAUGUIO
118118
117,34280,HÉRAULT,,,4,PETIT TRAVERS,MAUGUIO
119119
118,34750,HÉRAULT,,,5,ARESQUIERS,VILLENEUVE MAGUELONE
120120
119,34750,HÉRAULT,,,3,PARKING,VILLENEUVE MAGUELONE
@@ -132,7 +132,7 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
132132
131,35800,ILLE-ET-VILAINE,,,3,PORT HUE,ST BRIAC SUR MER
133133
132,35800,ILLE-ET-VILAINE,,,2,GRANDE SALINETTE ST BRIAC SUR MER,ST BRIAC SUR MER
134134
133,44210,LOIRE-ATLANTIQUE,,,3,LE PORTEAU,PORNIC
135-
134,44210,LOIRE-ATLANTIQUE,,,3,,PORNIC
135+
134,44210,LOIRE-ATLANTIQUE,,,3,L'ETANG,PORNIC
136136
135,44210,LOIRE-ATLANTIQUE,,,3,LA BRIOCHERE,PORNIC
137137
136,44210,LOIRE-ATLANTIQUE,,,3,LE PORTMAIN,PORNIC
138138
137,44210,LOIRE-ATLANTIQUE,,,3,NOVEILLARD,PORNIC
@@ -143,7 +143,7 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
143143
142,44420,LOIRE-ATLANTIQUE,,,4,LANSERIA,MESQUER
144144
143,44490,LOIRE-ATLANTIQUE,,,3,PORT-LIN,LE CROISIC
145145
144,44490,LOIRE-ATLANTIQUE,,,3,SAINT COUSTAN,LE CROISIC
146-
145,44510,LOIRE-ATLANTIQUE,,,4,,LE POULIGUEN
146+
145,44510,LOIRE-ATLANTIQUE,,,4,POSTE D'INTERVENTION LE POULIGUEN,LE POULIGUEN
147147
146,44740,LOIRE-ATLANTIQUE,,,4,VALENTIN,BATZ SUR MER
148148
147,44740,LOIRE-ATLANTIQUE,,,4,LA GOVELLE,BATZ SUR MER
149149
148,44760,LOIRE-ATLANTIQUE,,,5,LA BERNERIE EN RETZ,LA BERNERIE EN RETZ
@@ -197,7 +197,7 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
197197
196,62215,PAS-DE-CALAIS,,,5,LES ECARDINES,OYE PLAGE
198198
197,62224,PAS-DE-CALAIS,,,7,EQUIHEN-PLAGE,EQUIHEN-PLAGE
199199
198,62930,PAS-DE-CALAIS,,,8,WIMEREUX,WIMEREUX
200-
199,66420,PYRÉNÉES-ORIENTALES,,,4,,LE BARCARES
200+
199,66420,PYRÉNÉES-ORIENTALES,,,4,POSTE 8 L'AGLY,LE BARCARES
201201
200,66420,PYRÉNÉES-ORIENTALES,,,4,POSTE 7 LE VILLAGE,LE BARCARES
202202
201,66420,PYRÉNÉES-ORIENTALES,,,3,POSTE 5 LES MIRAMARS,LE BARCARES
203203
202,66420,PYRÉNÉES-ORIENTALES,,,3,POSTE 4 LE GRAND LARGE,LE BARCARES
@@ -226,7 +226,7 @@ id,code_postal,departement,latitude,longitude,nb_sauveteurs,nom,ville
226226
225,80550,SOMME,,,6,DIGUE JULES NOIRET,LE CROTOY
227227
226,83120,VAR,,,5,LA CROISETTE,STE MAXIME
228228
227,83150,VAR,,,3,PLAGE DU CASINO,BANDOL
229-
228,83150,VAR,,,2,,BANDOL
229+
228,83150,VAR,,,2,POSTE D'INTERVENTION BANDOL,BANDOL
230230
229,83150,VAR,,,3,RENECROS,BANDOL
231231
230,83150,VAR,,,4,GRAND VALLAT,BANDOL
232232
231,83150,VAR,,,4,CENTRAL,BANDOL

0 commit comments

Comments
 (0)