Serjalizowanie do xmla
Sulsa - 11-05-2007 12:38
Serjalizowanie do xmla
Czy python ma jakies funkcjie/biblioteki ktore umozliwialy by serjalizowanie(piklowanie w terminologi pythonoskiej) do xml'a. Nie chodzi mi o biblioteki do oblsugi xmla, bo musialbym go recznie prasowac, tylko o cos takiego jak modul pickle.
Rob Wolfe - 11-05-2007 12:38
Sulsa <sulsa@gazeta.pl> writes:
> Czy python ma jakies funkcjie/biblioteki ktore umozliwialy by > serjalizowanie(piklowanie w terminologi pythonoskiej) do xml'a. Nie > chodzi mi o biblioteki do oblsugi xmla, bo musialbym go recznie > prasowac, tylko o cos takiego jak modul pickle.
Przestań "prasować" tego biednego xml'a. :)
PyXML zawiera pakiet marshal, który służy do de/serializacji obiektów Pythona np.:
<code> from xml.marshal import generic
class User: def __init__(self, nazwisko, imie): self.nazwisko, self.imie = nazwisko, imie def __repr__(self): return "User(%r, %r)" % (self.nazwisko, self.imie)
user = User("Cleese", "John")
f = open("test.xml", "w") generic.dump((1, 2.0, 'napis', [1,2,3], user), f) f.close()
f = open("test.xml", "r") inp = generic.load(f) f.close() print inp </code>
Jednak nie obsługuje on niestety klas nowego stylu.
-- pozdrawiam Rob
Sulsa - 11-05-2007 12:38
On Sat, 28 Apr 2007 17:59:28 +0200 Rob Wolfe <rw@smsnet.pl> wrote:
> > Jednak nie obsługuje on niestety klas nowego stylu. >
co to sa klasy nowego stylu?
Rob Wolfe - 11-05-2007 12:38
Sulsa <sulsa@gazeta.pl> writes:
> On Sat, 28 Apr 2007 17:59:28 +0200 > Rob Wolfe <rw@smsnet.pl> wrote: > >> >> Jednak nie obsługuje on niestety klas nowego stylu. >> > > co to sa klasy nowego stylu?
1. klasy "klasyczne" (classic)
>>> class A: pass .... >>> type(A) <type 'classobj'>
2. klasy "nowego stylu" (new-style)
>>> class A(object): pass .... >>> type(A) <type 'type'>
http://www.python.org/doc/newstyle.html
-- pozdrawiam Rob
Sulsa - 11-05-2007 12:38
On Sun, 29 Apr 2007 22:59:17 +0200 Rob Wolfe <rw@smsnet.pl> wrote:
> Sulsa <sulsa@gazeta.pl> writes: > > > On Sat, 28 Apr 2007 17:59:28 +0200 > > Rob Wolfe <rw@smsnet.pl> wrote: > > > >> > >> Jednak nie obsługuje on niestety klas nowego stylu. > >> > > > > co to sa klasy nowego stylu? > > 1. klasy "klasyczne" (classic) > > >>> class A: pass > ... > >>> type(A) > <type 'classobj'> > > 2. klasy "nowego stylu" (new-style) > > >>> class A(object): pass > ... > >>> type(A) > <type 'type'> >
A jakie to ma konsekwencje pozatym ze zwraca inny typ?
William - 11-05-2007 12:38
Sulsa napisał(a): > On Sun, 29 Apr 2007 22:59:17 +0200 > Rob Wolfe <rw@smsnet.pl> wrote: > >> Sulsa <sulsa@gazeta.pl> writes: >> >>> On Sat, 28 Apr 2007 17:59:28 +0200 >>> Rob Wolfe <rw@smsnet.pl> wrote: >>> >>>> Jednak nie obsďż˝uguje on niestety klas nowego stylu. >>>> >>> co to sa klasy nowego stylu? >> 1. klasy "klasyczne" (classic) >> >>>>> class A: pass >> ... >>>>> type(A) >> <type 'classobj'> >> >> 2. klasy "nowego stylu" (new-style) >> >>>>> class A(object): pass >> ... >>>>> type(A) >> <type 'type'> >> > > A jakie to ma konsekwencje pozatym ze zwraca inny typ? >
Ogromne - pozwala na stosowanie wszelkich nowych feature (metaklasy, dekoratory, dekoratory, gettery, sloty itd.) pythonowego OOP. Generalnie ucząc się języka o starych klasach należy zapomnieć.
Bart Ogryczak - 11-05-2007 12:38
On Apr 28, 11:44 am, Sulsa <s...@gazeta.pl> wrote: > Czy python ma jakies funkcjie/biblioteki ktore umozliwialy by > serjalizowanie(piklowanie w terminologi pythonoskiej) do xml'a. Nie > chodzi mi o biblioteki do oblsugi xmla, bo musialbym go recznie > prasowac, tylko o cos takiego jak modul pickle.
Moze gnosis.xml.pickle? Tego uzywa Pyro. http://cheeseshop.python.org/pypi/Gnosis_Utils
>>> import gnosis.xml.pickle as pckl >>> print pckl.dumps(['na przyklad',{'jakas':['taka','lista']}]) <?xml version="1.0"?> <!DOCTYPE PyObject SYSTEM "PyObjects.dtd"> <PyObject family="obj" type="builtin_wrapper" class="_EmptyClass"> <attr name="__toplevel__" type="list" id="16534584" > <item type="string" value="na przyklad" /> <item type="dict" id="16536032" > <entry> <key type="string" value="jakas" /> <val type="list" id="16262368" > <item type="string" value="taka" /> <item type="string" value="lista" /> </val> </entry> </item> </attr> </PyObject>
Bart Ogryczak - 11-05-2007 12:38
On Apr 28, 5:59 pm, Rob Wolfe <r...@smsnet.pl> wrote:
> <code> > from xml.marshal import generic > > class User: > def __init__(self, nazwisko, imie): > self.nazwisko, self.imie = nazwisko, imie > def __repr__(self): > return "User(%r, %r)" % (self.nazwisko, self.imie) > > user = User("Cleese", "John") [...] > Jednak nie obsługuje on niestety klas nowego stylu.
Gnosis obsluguje.
>>> class User(object): def __init__(self, nazwisko, imie): self.nazwisko, self.imie = nazwisko, imie def __repr__(self): return "User(%r, %r)" % (self.nazwisko, self.imie)
>>> user = User("Cleese", "John") >>> print gnosis.xml.pickle.dumps(user) <?xml version="1.0"?> <!DOCTYPE PyObject SYSTEM "PyObjects.dtd"> <PyObject module="__main__" class="User" id="16876368"> <attr name="nazwisko" type="string" value="Cleese" /> <attr name="imie" type="string" value="John" /> </PyObject>
Janusz A. Urbanowicz - 11-05-2007 12:38
William <william@null.pl> writes:
> Sulsa napisał(a): >> On Sun, 29 Apr 2007 22:59:17 +0200 >> Rob Wolfe <rw@smsnet.pl> wrote: >> >>> Sulsa <sulsa@gazeta.pl> writes: >>> >>>> On Sat, 28 Apr 2007 17:59:28 +0200 >>>> Rob Wolfe <rw@smsnet.pl> wrote: >>>> >>>>> Jednak nie obsďż˝uguje on niestety klas nowego stylu. >>>>> >>>> co to sa klasy nowego stylu? >>> 1. klasy "klasyczne" (classic) >>> >>>>>> class A: pass >>> ... >>>>>> type(A) >>> <type 'classobj'> >>> >>> 2. klasy "nowego stylu" (new-style) >>> >>>>>> class A(object): pass >>> ... >>>>>> type(A) >>> <type 'type'> >>> >> >> A jakie to ma konsekwencje pozatym ze zwraca inny typ? >> > > Ogromne - pozwala na stosowanie wszelkich nowych feature (metaklasy, > dekoratory, dekoratory, gettery, sloty itd.) pythonowego > OOP. Generalnie ucząc się języka o starych klasach należy > zapomnieć.
Natomiast jak nie chcemy sie onanizowac ficzerami jezyka a mamy do napisania konkretny program pracujacy w realu to roznica jest prawie zadna. -- JID: alex@hell.pl PGP: 0x46399138 od zwracania uwagi na detale są lekarze, adwokaci, programiści i zegarmistrze -- Czerski
William - 11-05-2007 12:38
> Natomiast jak nie chcemy sie onanizowac ficzerami jezyka a mamy do > napisania konkretny program pracujacy w realu to roznica jest prawie zadna.
Do momentu gdy ktoś nie będzie potrzebował np. przeciążyć naszych klas i zastosować któryś "feature". Jeśli nie MUSISZ używać klas starego typu w jakimś starym projekcie, nie stosuj ich.
Bart Ogryczak - 11-05-2007 12:38
On 3 mayo, 21:20, a...@bofh.org.pl (Janusz A. Urbanowicz) wrote: > William <will...@null.pl> writes: > > Sulsa napisaĹ (a): > >> On Sun, 29 Apr 2007 22:59:17 +0200 > >> Rob Wolfe <r...@smsnet.pl> wrote: > > >>> Sulsa <s...@gazeta.pl> writes: > > >>>> On Sat, 28 Apr 2007 17:59:28 +0200 > >>>> Rob Wolfe <r...@smsnet.pl> wrote: > > >>>>> Jednak nie obsďż˝uguje on niestety klas nowego stylu. > > >>>> co to sa klasy nowego stylu? > >>> 1. klasy "klasyczne" (classic) > > >>>>>> class A: pass > >>> ... > >>>>>> type(A) > >>> <type 'classobj'> > > >>> 2. klasy "nowego stylu" (new-style) > > >>>>>> class A(object): pass > >>> ... > >>>>>> type(A) > >>> <type 'type'> > > >> A jakie to ma konsekwencje pozatym ze zwraca inny typ? > > > Ogromne - pozwala na stosowanie wszelkich nowych feature (metaklasy, > > dekoratory, dekoratory, gettery, sloty itd.) pythonowego > > OOP. Generalnie uczÄ c siÄ jÄ zyka o starych klasach należy > > zapomnieÄ . > > Natomiast jak nie chcemy sie onanizowac ficzerami jezyka a mamy do > napisania konkretny program pracujacy w realu to roznica jest prawie zadna.
W calkiem realnej aplikacji wykorzystuje np. issubclass(a.__class__, b.__class__), jak to zrobisz "klasycznymi" klasami?
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Jednoczesny update 2 tabel zlaczonych joinem ... ?
[DB2] Polskie znaki w wierszu komend
font - brak ogonków w Corelu
MySql Limit Order by
problem z czasem wykonania zapytania
backup poczty w oraclu
[MS-SQL 2005] Instalacja klienta
Poszukiwane zdjecie
MS SQL 2005 Logi transakcji.
[VFoxPro 8] jak zamapowac aparat fotograficzny
zanotowane.pldoc.pisz.plpdf.pisz.pltejsza.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|