Seite 1 von 1
Verfasst: Donnerstag 16. November 2006, 22:06
von Y0Gi
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.
Verfasst: Donnerstag 16. November 2006, 22:31
von gerold
CrackPod hat geschrieben:Kann mir das vielleicht jemand mit nem kleinem Bsp erklären?
Hi Tobi!
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)
@Leonidas: Ich habe nicht raus gefunden, wie man den JSON-Code mit ``simplejson`` schön formatiert bekommt.
lg
Gerold
Verfasst: Donnerstag 16. November 2006, 22:38
von gerold
...einfacher, aber dafür wird die Datei auch nicht UTF-8-codiert gespeichert:
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)
mfg
Gerold
Verfasst: Donnerstag 16. November 2006, 22:58
von gerold
...und so gehts mit pyYAML:
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)
mfg
Gerold