Vinnaren i pepparkakshustävlingen!
2018-05-19, 12:38
  #1
Medlem
Hej allihopa!

Jag hoppas att jag skriver under rätt "kategori" annars får Mod säga till!

Det är så att jag håller på och gör en liten uppgift och är klar till 99 % med den. Jag har väldig liten erfarenhet med Python och speciellt JSON så därför har jag hållit på med denna uppgiften länge.

Uppgiften går ut på att använda Python och JSON och få en textfil att sparas. Jag har sökt ordentligt på nätet men förstår dock inte hur man går tillväga. Min kod i Python ser ut så här:

------------------------------------

import json

dictionary = {}


data = json.dumps(dictionary)
data = json.load(open('json.json'))
dictionary = data['dictionary']

while True:
command = input('> ').split(' ')
if command[0] == 'get':
print(dictionary[command[1]])
if command[0] == 'set':
dictionary[command[1]] = command[2]
if command[0] == 'del':
del(dictionary[command[1]])
if command[0] == 'json':
print(dictionary)
if command[0] == 'exit':
break
---------------------------------------

Och här är den färdiga textfilen:
{
"dictionary":
{
"hostname": "SVR1",
"ip_address": "192.168.0.1",
"ospf1-router-id": "1.1.1.1",
"network": "192.168.0.0 0.0.0.255",
"interface": "fastethernet 0/0"
}
}

-------------------------------------------------

Vill man få fram t.ex. ip adressen så skriver man "get ip_address" i Python. Vill man ändra på ip adressen och skriver annan ip adress så ska denna den nya ip adressen sparas. Man ska kunna stänga ner programmen och starta om igen och då ska den nya ip adressen eller vad man nu väljer att ändra sparas.

Någon som har tips? Uppskattar det mycket.

Mvh
Citera
2018-05-19, 13:23
  #2
Medlem
Är väldigt lätt med python.

Json dokumentationen:
https://docs.python.org/2/library/json.html

Hur man skriver till en fil:
https://docs.python.org/2/tutorial/inputoutput.html
Citera
2018-05-19, 14:06
  #3
Medlem
Citat:
Ursprungligen postat av krakelibrankel
Är väldigt lätt med python.

Json dokumentationen:
https://docs.python.org/2/library/json.html

Hur man skriver till en fil:
https://docs.python.org/2/tutorial/inputoutput.html

Det är ju via den sidan jag gjorde min kod. Fattar fortfarande ej hur man gör så att det sparas.
Citera
2018-05-19, 14:29
  #4
Medlem
Citat:
Ursprungligen postat av matte06
Det är ju via den sidan jag gjorde min kod. Fattar fortfarande ej hur man gör så att det sparas.

Du måste öppna en fil med write (w) flaggan.

Sedan gör du file.write(json.dumps(dindata))

Mycket enkelt.
Citera
2018-05-19, 14:29
  #5
Medlem
vtcs avatar
Citat:
Ursprungligen postat av matte06
Det är ju via den sidan jag gjorde min kod. Fattar fortfarande ej hur man gör så att det sparas.
För att spara innehållet i dictionary till filen exempel.json
Kod:
with open('exempel.json', 'w') as outfile:
  json.dump(dictionary, outfile)
Citera
2018-05-19, 14:44
  #6
Medlem
Tack för era svar.

Menar ni så här:

with open('json.json', 'w') as outfile:
json.dump(dictionary, outfile)
dictionary = data['dictionary']

Testade det och den klagar nu på "TypeError: string indices must be integers". Det förstår jag dock men hur ska man ändra på den?
Citera
2018-05-19, 20:44
  #7
Moderator
vhes avatar
Använd kodtaggar när du postar kod. I synnerhet Pythonkod.

Se exempelvis användare vtc:s inlägg ovan för inspiration.

/Moderator
Citera
2018-05-20, 10:26
  #8
Medlem
vtcs avatar
Citat:
Ursprungligen postat av matte06
Kod:
dictionary = data['dictionary']
Vad försöker du åstadkomma med denna rad?
Citera
2018-05-20, 10:33
  #9
Medlem
Citat:
Ursprungligen postat av vtc
Vad försöker du åstadkomma med denna rad?

När jag körde koden utan den så funkade inte min kod, en klasskamrat till mig la till den biten och så funkade koden. Jag har faktiskt inte någon större aning om vad det exakt gör men minns att han sa att "dictionary sparas i data", att det jag skriver sparas i dictionary. Låter säkert hjärndött men ja..
Citera
2018-05-20, 11:32
  #10
Medlem
vtcs avatar
Citat:
Ursprungligen postat av matte06
När jag körde koden utan den så funkade inte min kod, en klasskamrat till mig la till den biten och så funkade koden. Jag har faktiskt inte någon större aning om vad det exakt gör men minns att han sa att "dictionary sparas i data", att det jag skriver sparas i dictionary. Låter säkert hjärndött men ja..
Det tjänar absolut ingenting till att du får hjälp om du inte förstår vad som händer. Du måste bygga förståelse för vad du håller på med.
Citera
2018-05-21, 08:53
  #11
Medlem
Citat:
Ursprungligen postat av vtc
Det tjänar absolut ingenting till att du får hjälp om du inte förstår vad som händer. Du måste bygga förståelse för vad du håller på med.

Om jag inte har den biten med så "skrivs" inget när jag kör koden. Alltså det jag har skrivit i min textfil såsom hostname, ip_address, ospf osv, skrivs inte ut utan jag får en tom kod så att säga. Jag antar som jag tidigare nämnde att textfilen sparas i den denna kod -->
Kod:
dictionary = data['dictionary']
. Har man inte den med så skrivs inget ut som sagt.
Citera
2018-05-21, 23:35
  #12
Medlem
vtcs avatar
Citat:
Ursprungligen postat av matte06
Om jag inte har den biten med så "skrivs" inget när jag kör koden. Alltså det jag har skrivit i min textfil såsom hostname, ip_address, ospf osv, skrivs inte ut utan jag får en tom kod så att säga. Jag antar som jag tidigare nämnde att textfilen sparas i den denna kod -->
Kod:
dictionary = data['dictionary']
. Har man inte den med så skrivs inget ut som sagt.
Begriper du inte varför du har kodraden där så är du på fel väg.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback