ďťż
 
Serjalizowanie do xmla ďťż
 
Serjalizowanie do xmla
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tejsza.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com