Nevím, ast neznám, moc jsem to nepochopil, a myslím, že chyba může být v něm. Pokud na něm netrváš, použij pickle.

V tvém příkladu chybí na začátku deklarace kodování a při ukládání ti to také musí házet chybu.
Bezpečně funguje:

# -*- coding: utf-8 -*-

text=u"Žluťoučký kůň pěl ďábelské ódy."
f=open("Kun.txt","w")
f.write(text.encode("cp1250"))    # ok
f.close()

geon

Luboš Melichar napsal(a), dne 15.9.2009 12:47:
dodavam tedy

db =  ast.literal_eval(text)

by mi mela prevest string na pozadovany pythonovsky typ, v tomto
pripade slovnik..

import ast
ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
{'muffin': 'lolz', 'foo': 'kitty'}

http://docs.python.org/library/ast.html


2009/9/15 Luboš Melichar <lubos.melic...@gmail.com>:
Zdravim,
jsem začátečník a tak dopředu prosím o trpělivost..

Zkouším toto, v souboru mít uložený slovník, případně pole slovníků..

{'cz': 'hezký', 'en': 'nice', 'de': 'schön'}

vyčíst ze souboru, převést na slovník, pracovat s ním, uložit

#VYCTENI ZE SOUBORU
f = open("db.db")
text = unicode(f.read(),('cp1250'))
f.close()

#PRACE S DB
db =  ast.literal_eval(text)       #prevod stringu na seznam slovniku
db['maďarština'] = 'keřmideretvář'

#ZAPIS DO SOUBORU
text2 = str(db)
f = open("db2.db")
f.write(text2.encode('cp1250'))  #ulozeni
f.close()

bohuzel s cestinou mam neprekonatelny problem, ve vystupnim souboru se
mi to uklada v unicodu.
kodovani v obou souborech mam samozrejme cp1250.

diky za popostrceni




_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem