Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 4154
Jeg har en CSV-fil med en rekke produktnumre og priser, som jeg får fra en nettbasert tjeneste. Men så er det at noen av produktnumrene er feil, og jeg får ikke nettjenesten til å endre på de. Men jeg har en liste (CSV for ordens skyld) som har de rette produktnummerene, og jeg lurer på hvordan jeg enklest mulig kan søke gjennom hovedfilen og endre den, basert på den andre CSV-filen jeg har.

produktfil.csv har kolonnene Produkt, Pris
riktig.csv har kolonnene Feil, Riktig
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Har du noe språk å gjøre dette i? Generelt bør riktig.csv leses inn i en "dictionary"/hashmap, så kan du loope over produktfil.csv, slå opp, og skrive en korrigert versjon av linjen til en fil.
Kjapp utestet two-liner i C#:

Kode

var dict = File.ReadAllLines("riktig.csv")
  .Select(x => x.Split(", "))
  .ToDictionary(x => x[0], x => x[1]);
File.WriteAllLines("produktfil-korrigert.csv", File.ReadAllLines("produktfil.csv")
  .Select(x => x.Split(", "))
  .Select(x => $"{(dict.TryGetValue(x[0], out var corrected) ? corrected : x[0])},{x[1]}");
Finnes sikkert en relativt enkel løsning i diverse shell-språk også, men disse er ikke mitt område
Sist endret av robhol; 28. januar 2020 kl. 13:35. Grunn: parentesfuckeri
Hei, dette kan også gjøres med javascript, hvis du deler csv, trenger ikke være hele filene men nok til å kjøre en test så kan jeg gi en helt konkret kodesnippet
Finn enkelt ut hvordan listen er delt så gjør du det med python eller noe.

Vanligvis er det komma eller semicolon tror jeg.