Welches Dateiformat?
Die YAML- und wohl auch JSON-Parser funktionieren so, dass du einfach (Python-)Datenstrukturen wie Zahlen, Strings, Listen, Dictionaries an eine Funktion übergibst, die dir die entsprechende YAML-/JSON-Darstellung ausgibt - und vice versa.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Tobi!CrackPod hat geschrieben:Kann mir das vielleicht jemand mit nem kleinem Bsp erklären?
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import demjson
import codecs
import encodinghelper
data = {
1: {"sprache1": u"Vorname (öäü)", "sprache2": u"first name"},
2: {"sprache1": u"Nachname (öäü)", "sprache2": u"last name"},
3: {"sprache1": u"Tisch (öäü)", "sprache2": u"Table"},
}
# Schreiben
f = codecs.open(r"J:\Ablage\vocfile.voc", "wb", encoding = "utf-8")
json = demjson.encode(data, compactly = False, escape_unicode = False)
f.write(json)
f.close()
print json
# Lesen
f = codecs.open(r"J:\Ablage\vocfile.voc", "rb", encoding = "utf-8")
new_data = demjson.decode(f.read())
f.close()
print new_data
print type(new_data)
lg
Gerold
Zuletzt geändert von gerold am Samstag 18. November 2006, 01:26, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
...einfacher, aber dafür wird die Datei auch nicht UTF-8-codiert gespeichert:
mfg
Gerold
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import demjson
import encodinghelper
data = {
1: {"sprache1": u"Vorname (öäü)", "sprache2": u"first name"},
2: {"sprache1": u"Nachname (öäü)", "sprache2": u"last name"},
3: {"sprache1": u"Tisch (öäü)", "sprache2": u"Table"},
}
# Schreiben (nur ASCII, kein UTF-8)
f = file(r"J:\Ablage\vocfile.voc", "wb")
json = demjson.encode(data, compactly = False)
f.write(json)
f.close()
print json
# Lesen (nur ASCII, kein UTF-8)
f = file(r"J:\Ablage\vocfile.voc", "rb")
new_data = demjson.decode(f.read())
f.close()
print new_data
print type(new_data)
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
...und so gehts mit pyYAML:
mfg
Gerold
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import yaml # http://pyyaml.org/wiki/PyYAML
data = {
1: {"sprache1": u"Vorname (öäü)", "sprache2": u"first name"},
2: {"sprache1": u"Nachname (öäü)", "sprache2": u"last name"},
3: {"sprache1": u"Tisch (öäü)", "sprache2": u"Table"},
}
# Schreiben
f = file(r"J:\Ablage\vocfile.voc", "wb")
yamlstr = yaml.dump(data, f)
f.close()
# Lesen
f = file(r"J:\Ablage\vocfile.voc", "rb")
new_data = yaml.load(f)
f.close()
print new_data
print type(new_data)
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.