Gå til innhold

[Løst] ideer rundt delte kommunale data fra Bergen Kommune


Anbefalte innlegg

Hei folkens. Jeg har sett litt på datagrunnlaget for budsjettet til Bergen Kommune. Tenkte jeg skulle se om jeg kom på en app eller noe, men har ikke kommet lenger enn til å parse dataene litt. Noen som har noen tanker? Uendelig med muligheter her.

 

Nedenforstående kode er en begynnende enkel parsing av dataene i driftsbudsjettet. Håper noen er litt likesinnede meg her og liker å leke med datasamlinger. Jeg er temmelig nybegynner, kun student med noe arbeidserfaring.

 

<?php
  $handle = fopen("https://www.bergen.kommune.no/bk/multimedia/archive/00114/Datagrunnlag_drift__114176a.csv", "r");

   while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) {
   $pieces = explode(";", $data[0]);
   print_r($pieces);
   echo "<br/>";
   echo "<br/>";
}

?>

Endret av poande05
Lenke til kommentar
Videoannonse
Annonse

Setter denne som løst siden ingen er like nerd her :thumbdown::tease:

 

Jeg laget i hvert fall et script som oversetter dataene til xml. Om noen skulle ville lage noe av det da.

 

<?php
   //åpne dokumentet for driftsbudsjett 2012
  $handle = fopen("https://www.bergen.kommune.no/bk/multimedia/archive/00114/Datagrunnlag_drift__114176a.csv", "r");
  //XML dom
  $dom = new DOMDocument('1,0', 'UTF-8');
  $xmlRoot = $dom->createElement("xml");
  $xmlRoot = $dom->appendChild($xmlRoot);

  //array til feltnavn
  $fieldNames = array();


  //første linje inneholder felttitler, vi befinner oss i utgangspunktet på første linje, derfor setter vi en boolsk verdi her.
  $firstLineBool = true;
  //tar for seg hver linje i dokumentet
   while (($rows = fgetcsv($handle, 5000, ";")) !== FALSE) {

     //for første linje lagrer vi alle feltnavn i en array
     if($firstLineBool) {


       foreach($rows as $row) {

            //regex for å lage lovlige nodenavn
            $row = preg_replace('/[^0-9a-z ]+/i', "",  $row);
            //hvis den begynner med et tall legg til en "a" foran (for man kan ikke begynne navnet på et element med et tall)
            if(is_numeric(substr($row, 0, 1))) {
                $row = "a" . $row;
            }
           $fieldNames[] = $row;       
       }


   }

   else {
     //legger til et barn i xml-dokumentet vårt
     $entity = $dom->createElement("Post");
     $entity = $xmlRoot->appendChild($entity);

     //for hver databit som nå ligger i $pieces lager vi et xml-element med dataene i, basert på feltnavnene vi fikk i første linje av dokumentet
     $whereInFieldNames = 0;
     foreach($rows as $row) {
         $element = $dom->createElement($fieldNames[$whereInFieldNames]);
         $element = $entity->appendChild($element);

         //konverter bokstaver til entities

         $content = $dom->createTextNode(utf8_encode($row));
         $element->appendChild($content);
         $whereInFieldNames++;
     }
   }
   $firstLineBool = false;

}
echo $dom->saveXML(); 

?>

Lenke til kommentar

Ganske sikker på at barn, søsken og forelder er korrekt norsk terminologi når man snakker om noder i et tre.

 

Kult at informasjonen blir gjort såpass tilgjengelige. Ligger dog allerede en del ferdige løsninger for lesing av CSV i PHP ute på nettet. Ville og kanskje lagt det rett inn i en database hvis jeg skulle brukt dataene videre i et prosjekt.

Lenke til kommentar

Ganske sikker på at barn, søsken og forelder er korrekt norsk terminologi når man snakker om noder i et tre.

 

Kult at informasjonen blir gjort såpass tilgjengelige. Ligger dog allerede en del ferdige løsninger for lesing av CSV i PHP ute på nettet. Ville og kanskje lagt det rett inn i en database hvis jeg skulle brukt dataene videre i et prosjekt.

 

Ja ligger nok ferdig. Fant også ut på data.norge.no at dataene finnes i XML.

 

Om du legger det i en SQL base vil ikke dataene oppdatere seg om de endrer kommunalt da.

 

Jeg fant ut at jeg heller ville se på BIBSYS sine åpne data. Sjekk bloggen min for mer om prosjektet :)

 

Eller så har du funnet koden på nettet og oversatt dårlig.

 

//legger til et barn i xml-dokumentet vårt

 

Trur ikke child betyr barn i denne sammenhengen. :p

 

jeg har skrevet dette selv, som en øvelse. Men ser på data.norge.no at dataene allerede finnes som XML.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...