Welches Dateiformat?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
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:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten