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
:-)