[python] eval je nebezpečný, ale i užitečný (bylo parsing souboru)

Petr Přikryl prikryl na atlas.cz
Čtvrtek Květen 6 10:00:38 CEST 2010


>Tomas Hnizdil
>> Mam soubor, ve kterem mam textova data ve formatu dictionary tj. '{'KLIC':
>> 'hodnota', ...... {'SUBSLOVNIK': 'hodnota' ....} ...}
>> Potrebuji zjistit hodnotu dvou klicu, ktere jsou umitsteny skoro na konci
>> toho slovniku. Vsechno je to ulozeno jako jedna radka a ma to v prumeru 6000
>> znaku, prijde mi proto neefektivni to cist od zacatku a navic to nacitat

Petr Messner
>pokud to vypadá jako JSON, asi nejlepší bude použít na to nějakou
>knihovnu, jak už tu zaznělo. Další zmíněná možnost, eval, se mi moc
>nelíbí.

Do stohu bych se sirkama taky nelezl a dětem bych nedával ostrý nůž na hraní.
Je to záležitost volby. Pokud jde o utilitku "narychlo", pro vlastní potřebu, 
je podle mě použití eval() bez problémů.

Nebezpečnost eval() je úzce spojená se znalostí jeho vstupu.
Pokud jsem schopen ohlídat, že tam nic špatného nepronikne,
je to OK. Záleží na tom, kdo ten zpracovávaný soubor připravuje.

Je jasné, že do webové služby by se to cpát nemělo.

Modul json je od Python 2.6 mezi standardními moduly.

Mějte se fajn,
   Petr


Další informace o konferenci Python