Compare commits

...

3 Commits

Author SHA1 Message Date
frabad 888e1593f9 renommage des protos 2022-05-07 18:59:13 +02:00
frabad 923839c77f récup suffixe et nettoyage aditionnel des données 2022-05-06 21:54:32 +02:00
frabad 161b32bacf préfère Unicode dans la sortie JSON 2022-05-06 21:16:59 +02:00
3 changed files with 18 additions and 13 deletions

View File

@ -2,24 +2,27 @@
"""
extracteur de données iSpindel JSON entreposées par Little Bock en HTML
"""
import json
import json, pathlib
try:
import lxml.html as LX
except ModuleNotFoundError:
import sys
sys.exit("Le module 'lxml' est nécessaire.\n\thttp://pypi.org/lxml")
import pathlib
def jsproc(data):
"""nettoie des données récursivement"""
unwanted = ["color","opacity","yAxis","dashStyle"]
for u in unwanted:
if u in data.keys():
del(data[u])
for k,v in data.items():
if isinstance(v,dict):
jsproc(v)
return data
"""supprime les données inutiles d'une série"""
unwanted = ("color","opacity","yAxis","dashStyle", "tooltip",)
if data.get("data"):
for u in unwanted:
if u in data.keys():
if u == "tooltip":
tt = data.get(u)
suffix = tt.get("valueSuffix")
if suffix: data.update({
"name": " ".join([data["name"], suffix])
})
del(data[u])
return data
def hproc(path_in):
"""traite un document HTML"""
@ -29,11 +32,13 @@ def hproc(path_in):
if x: data1 = x[0].get('data-chart-options')
if data1:
for i in json.loads(data1).pop('series'):
data2.append(jsproc(i))
data = jsproc(i)
if data: data2.append(data)
if len(data2) > 0:
path_out = path_in.with_suffix('.json')
with open(path_out,'w') as f:
f.write(json.dumps(data2, indent=2, sort_keys=False))
f.write(json.dumps(data2,
sort_keys=False, ensure_ascii=False, indent=2))
print(f"INFO: {path_in.name} >> {path_out.name}")
if __name__ == "__main__":