PDA

View Full Version : Aiuto per convertire file HTML in JSON/CSV/XLSX


Xmasnat
12-02-2020, 09:56
Ciao a tutti!
Ho un file HTML con domande a risposta multipla (una sola corretta) che vorrei convertire in un file JSON.
Nel file HTML i dati importanti sono:
- colonna TEXT in cui c'è la domanda (ad esempio, la prima: 1. In una polmonite da Staphylococcus aureus...);
- colonne TEXT in cui ci sono 5 risposte (a, b, c, d, e);
- colonna OK in cui c'è un numero da 1 a 5 che corrisponde alla risposta corretta tra le 5.

Ciò di cui avrei bisogno è convertire quel file HTML in un JSON con le regole di quello nel link (che riporta le prime due domande come esempio).
Se convertire in JSON è complicato, in alternativa si potrebbe convertire in CSV o in XLSX.
E' una cosa fattibile? Considerate che io proprio non saprei da dove iniziare...

P.S.: potete scaricare i file HTML e JSON da qui (https://drive.google.com/file/d/1Zlk--TGxuYxRiHQPSysLX7xoPd8EYMJh/view).

misterx
12-02-2020, 12:06
non so se fa al caso tuo, ma basta cercare http://beautifytools.com/html-to-json-converter.php

Xmasnat
12-02-2020, 12:40
non so se fa al caso tuo, ma basta cercare http://beautifytools.com/html-to-json-converter.php

Ti ringrazio, ma avevo già visitato quella pagina e sembra non funzionare per ciò che mi serve (o sono io a non saperlo fare).

DoctorT
26-02-2020, 10:48
ho buttato giù uno script python che converte il file in formato .csv
per usarlo bisogna installare la libreria Beautiful Soup (BS4)
l'unico problema è che il file .csv ha la codifica dei caratteri UTF-8 comunque puo essere letto tranquillamente con excel settando la relativa opzione


from bs4 import BeautifulSoup
import codecs
f = codecs.open('quizPreClinica.html', "r", "iso-8859-1")
content = f.read()
f.close()
soup = BeautifulSoup(content,'html.parser');
tableRows = soup.findAll('tr')
rows = [[td.getText() for td in tr.findAll('td')]
for tr in tableRows]
csvlines = []
for i in range(2,len(rows)-1):
csvlines.append(';'.join(rows[i]))
outfile = open('quizPreClinica.csv', 'w');
outfile.write('\n'.join(csvlines))
outfile.close()

Xmasnat
26-02-2020, 10:54
ho buttato giù uno script python che converte il file in formato .csv
per usarlo bisogna installare la libreria Beautiful Soup (BS4)
l'unico problema è che il file .csv ha la codifica dei caratteri UTF-8 comunque puo essere letto tranquillamente con excel settando la relativa opzione


from bs4 import BeautifulSoup
import codecs
f = codecs.open('quizPreClinica.html', "r", "iso-8859-1")
content = f.read()
f.close()
soup = BeautifulSoup(content,'html.parser');
tableRows = soup.findAll('tr')
rows = [[td.getText() for td in tr.findAll('td')]
for tr in tableRows]
csvlines = []
for i in range(2,len(rows)-1):
csvlines.append(';'.join(rows[i]))
outfile = open('quizPreClinica.csv', 'w');
outfile.write('\n'.join(csvlines))
outfile.close()

Grazie!