[Python] Due domande collegate

Carlos Catucci carlos.catucci a gmail.com
Mer 17 Maggio 2017 14:43:09 CEST


Salve gente

ho un paio di quesiti che davvero mi stanno facendo penare.

Devo estrarre i dati di un record di un db mysql di Drupal (non so che
versione, ho accesso solamente alla tabella sul db). Il contenuto e
serializzato con serialze di PHP.

Ho provato a usare phpserialize.deserialize() ma mi solleva un
ValueError "unexpected opcode".
Ed ecco la prima domanda:

a cosa e' docuto queto errore? Non riesco a trovare doumentazione in merito.

Ho quindi guardato cosa torna. La serializzazione di PHP e' bizzarra:

'a:13:{i:0;a:9:{s:12:"image_upload";s:5:"22487";s:11:"image_title";s:50:"Financial
Times, Executive Education Ranking 2017
";s:17:"image_description";s:57:"SDA Bocconi sul podio europeo per la
formazione su misura";s:9:"image_url";s:93:"http://www.sdabocconi.it/it/news/2017/05/formazione-misura-sda-bocconi-sale-sul-podio-europeo";s:12:"image_weight";s:1:"1";s:14:"image_language";s:2:"it";s:15:"image_published";i:1;s:12:"image_delete";i:0;s:10:"image_note";s:6:"15/5\\r\\n";}i:1;a:9:{s:12:"image_up'

ho scoperto che a:13 e' il numero di record, i:x l'indice del record
corrente e s:y la lunghezza (numero di caratteri) della stringa
successiva. Inoltre ogni stringa e' alternativamente una volta chiave
e quella dopo valore, ad esempio

"image_upload":"22487"

Dopo avere con le RegEx strippato via tutti gli orpelli mi tovo con
delle coppie chiave valore ripetutamente separate dal segno ";", ma
consequenziali, ovvero

"image_upload";"22487";"image_title";"Financial Times";...

Ora mi servirebbe di riuscire a trasformarle in un qualcosa da dare in
pasto a json.loads o comunque trasformate in un dizionario.

La seconda domanda e': se uso split(";") otterro' una lista di valori,
dopo con un dict_comprehension potrei trasformare il tutto in
dizionari, ma non esiste una strada migliore?

Grazie
Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros


Maggiori informazioni sulla lista Python