These are chat archives for dbwebb-se/python

13th
Sep 2016
anderssinho
@anderssinho
Sep 13 2016 07:21
Något mer tips på läsning om man ska försöka lösa uppgiften i kmom04:
Spara Marvins inventory som JSON istället. Tips: python/example/json/ samt introduktion till JSON (del av kmom06).
Mikael Roos
@mosbth
Sep 13 2016 07:32
Undrar om inte detta exemplet kan leda dig åt rätt håll: https://github.com/dbwebb-se/python/tree/master/example/json
@anderssinho Ah, eller det kanske inte ens var en fråga...
anderssinho
@anderssinho
Sep 13 2016 07:45

Försöker använda mig av det och har kopierat över en bit av koden med får detta felmeddelande:

File "./main.py", line 103, in <module>
main()
File "./main.py", line 21, in main
marvin.createJSON()
File "/home/Viktor/dbwebb-kurser/python/me/kmom04/marvin3/marvin.py", line 622, in createJSON
jsonobject = json.load(jsonfile)
File "/usr/lib/python3.4/json/init.py", line 268, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/lib/python3.4/json/init.py", line 318, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.4/json/decoder.py", line 359, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting ',' delimiter: line 6 column 5 (char 100)

Kopierade detta och la det i min marvin fil bara för att testa
Mikael Roos
@mosbth
Sep 13 2016 07:49
Kunde du köra exempelprogrammet som det var? (steg 1)
anderssinho
@anderssinho
Sep 13 2016 07:49
Yes det kunde jag
Allinrep
@pejg12
Sep 13 2016 07:49
ValueError: Expecting ',' delimiter: line 6 column 5 (char 100)
anderssinho
@anderssinho
Sep 13 2016 07:49
Men verkar varit jag som förstörde json.txt när jag skickade över den
Funkar igen nu när jag tog bort och kopierade in igen
Magnus Andersson
@bredsjomagnus
Sep 13 2016 07:59
Sitter med Atom paket och kan inte få till det med PHP path för de paket som kräver det (linter-php mm). Jag har försökt med c/xampp/php/php.exe, men då klagar den över att den inte kan verifiera min php-version. Någon som har en idé/lösning på problemet?
Ooops fel chat....
anderssinho
@anderssinho
Sep 13 2016 08:06
Är dbwebb.se nere eller?
danijoha
@danijoha
Sep 13 2016 08:07
Jo, det verkar så. Se info i kanalen webbprogrammering.
anderssinho
@anderssinho
Sep 13 2016 08:07
@danijoha tackar
Mikael Roos
@mosbth
Sep 13 2016 08:10
[Kanalen Webbprogrammering)(https://gitter.im/mosbth/webbprogrammering)
Ugh, min länking blev inte så bra som jag trodde... Kanalen Webbprogrammering
Christinefred
@Christinefred
Sep 13 2016 09:10
Jag försökte logga in men dbwebb är nere, kan någon ge mig koden för att tillåta cgi att öppna en fil (chmod to 644) eftersom jag inte kan nå kursen. Tack Christine
Mikael Roos
@mosbth
Sep 13 2016 09:13
Backupserver: http://do2.dbwebb.se/
Tillåta cgi att öppna en fil? Sammanhang? chmod 755?
Christinefred
@Christinefred
Sep 13 2016 09:14
Jag försöker att publicera den på webben men jag behöver chnod 644 säger det
Mikael Roos
@mosbth
Sep 13 2016 09:18
Visa vad du gör och vad som händer. Länk? Studentservern är nere nu och det går inte publicera (dbwebb publish) nu. Om det är problemet.
Christinefred
@Christinefred
Sep 13 2016 09:19
Jo det är problemet jag ville bara gå in på kursen och hämta kode för att tillåta att öppna en fil
anderssinho
@anderssinho
Sep 13 2016 09:30
@mosbth är det ok att skapa en egen JSON-fil manuellt i extra uppgiften eller ska man skapa en/kolla om den finns redan i marvin?
Mikael Roos
@mosbth
Sep 13 2016 09:36
@anderssinho är det extra så spelar det ingen roll, men vill minnas att man skapar filen om den inte finns, så man borde inte behöva göra nåt manuellt
anderssinho
@anderssinho
Sep 13 2016 09:37
Hmm får fundera lite till hur ja skapar den då. För när jag använder den koden från exemplet och försöker skapa så finns den inte sedan när ja ska försöka skriva till den säger pylint
johi12
@johi12
Sep 13 2016 11:22
    word = random.choice(open("common-words.txt").readlines())
    shuffled = "".join(random.sample(word, len(word)))
    print(shuffled)
Håller på med extrauppgiften till Kmom03. Ovanstående kod printar ut "shuffeld" på två olika rader i terminalen. Någon som kan säga varför?
Ibland så kommer det ut på en rad märkligt nog.
danijoha
@danijoha
Sep 13 2016 11:26
@johi12 Extra radslut i filen kanske?
johi12
@johi12
Sep 13 2016 11:31
@danijoha Ingen skillnad tyvärr.
danijoha
@danijoha
Sep 13 2016 11:39
unix-radslut på varje rad också?
Allinrep
@pejg12
Sep 13 2016 11:52
@johi12 Du får dela med dig av mer kod om vi ska kunna se vad som är fel. Troligtvis någon slags loop? Använd gärna https://gist.github.com/ eller https://codeshare.io/ för att dela koden.
johi12
@johi12
Sep 13 2016 11:56
Jag har inte skrivit mer kod än så. Förutom när jag def guesTheWord():
En loop behöver jag väl inte?
Allinrep
@pejg12
Sep 13 2016 11:56
Består hela filen av tre rader?
johi12
@johi12
Sep 13 2016 11:59
Det gör den inte, funktionen ligger ju i marvin.py. Vill du ha hela den filen? Sen så är det ju så klart "common-words.txt" en egen fil.
Allinrep
@pejg12
Sep 13 2016 12:01
Jag tror inte att felet ligger i de tre raderna du pastade här, och istället för att gissa vilka andra rader som skulle kunna finnas är det lättast om du visar hela filen. Du får gärna leta själv annars, tänk på att om du får två utskrifter så har du antagligen två print(), eller någon kod som gör att din en print() körs två gånger.
Mikael Roos
@mosbth
Sep 13 2016 12:01
Det är mycket som händer på dina tre rader. Försökt bryta ned det rad för rad och printa ut innehållet i variablerna, för att avgränsa området till en av raderna.
om raderna blir "för komplexa", bryt ned dem i delar och pröva varje del för sig.
johi12
@johi12
Sep 13 2016 12:05
@mosbth Okidoki
Mikael Roos
@mosbth
Sep 13 2016 12:09
python är lite "magiskt" när man kan sätta ihop långa rader av kommandon, med nackdelen att det ibland kan bli svårare att se vad som händer och mer krävande att felsöka
johi12
@johi12
Sep 13 2016 12:31
Nu klurade jag ut det. Hade inte riktigt greppat hur readlines() fungerade.
Mikael Roos
@mosbth
Sep 13 2016 12:32
@johi12 hjälpte det att dela upp koden i fler rader?
johi12
@johi12
Sep 13 2016 12:32
tack för tips @pejg12 och @mosbth
@mosbth Ja, men jag gillar oneliners ;)
Niclas Söderkvist
@skvist
Sep 13 2016 14:58
Hur är best practice med för komplexa rader, bör max köra en funktion eller metod på en variabel sedan nästa steg på en ny rad? Samma med loopar och if-satser, bör man alltid köra t.ex. len(var) innan eller är det ok att köra det direkt i loop/if-satsen?
Snart dags att läsa igenom PEP igen :)
Mikael Roos
@mosbth
Sep 13 2016 14:59
jag har mesat till det på äldre dar. en sak i taget, finns hur många rader som helst i en fil så onödigt att klämma ihop saker på en rad.
helikopterspark
@helikopterspark
Sep 13 2016 15:07
Det handlar ju om läsbarhet också. Lätt att missa allt som händer i en lång oneliner.
danijoha
@danijoha
Sep 13 2016 15:09
@helikopterspark Håller med. Kod ska ju i regel läsas och förstås väldigt många fler gånger än den ska skrivas, så läsbarhet har hög prioritet.
Kan dock ibland vara så att kort och vackert även blir mera läsbart.
Christinefred
@Christinefred
Sep 13 2016 15:24
Jag försöker att publicera plane1 men får felmedelanden "chmod 644 plane1.cgi"$ ./plane1.cgi
-bash: ./plane1.cgi: Permission denied
både om jag försöker med .py och .cgi
AndreasArne
@AndreasArne
Sep 13 2016 16:59
@Christinefred om du sitter på windows med cygwin, testa starta cygwin som admin
eller om du är på linux testa med sudo
Allinrep
@pejg12
Sep 13 2016 17:41
sudo chmod
Christinefred
@Christinefred
Sep 13 2016 18:49
ok kommer att prova hello.cgi funkar report.cgi funkar men inte plane1.cgi
Allinrep
@pejg12
Sep 13 2016 18:53
då har du kanske konstiga rättigheter på mappen plane
gå tillbaka till mappen kmom01 och kör "ls -l" för att jämföra rättigheterna mellan mapparna
Christinefred
@Christinefred
Sep 13 2016 18:53
vad menar du
I den guiden förklaras det hur man flyttar sig mellan mappar och hur man ändrar rättigheter
Christinefred
@Christinefred
Sep 13 2016 18:56
det här kom upp $ ls -l
total 4
drwx------+ 1 mariechristine mariechristine 0 Sep 2 16:18 hello
drwx------+ 1 mariechristine mariechristine 0 Sep 12 21:53 plane
Allinrep
@pejg12
Sep 13 2016 18:57
okej, då borde användaren mariechristine ha rättigheter att ändra rättigheter inne i båda mapparna...
Christinefred
@Christinefred
Sep 13 2016 18:58
hur gör jag det
Allinrep
@pejg12
Sep 13 2016 18:59
Om du har mac eller linux:
$ cd plane
$ sudo chmod 644 plane1.cgi
Christinefred
@Christinefred
Sep 13 2016 19:10
jag har försökt men har windows
Allinrep
@pejg12
Sep 13 2016 19:11
Okej. Stäng cygwin och öppna det sedan som administratör (högerklicka och välj hur du vill öppna det). Gå tillbaka till plane-mappen och kör sedan chmod-kommandot igen utan sudo.
Christinefred
@Christinefred
Sep 13 2016 19:12
tack ska prova
Christinefred
@Christinefred
Sep 13 2016 19:48
det säger fortfarande ./plane1.cgi
-bash: ./plane1.cgi: Permission denied