Je dois désérialiser un dictionnaire em> dans PHP qui a été sérialisé en utilisant cpickle dans python em>. Dans ce cas particulier, je pourrais probablement Regexp le souhaité Information em>, mais y a-t-il une meilleure façon? Toute extension pour PHP qui me permettrait de désérialiser plus de manière nativement tout le dictionnaire? P> Apparemment, il est sérialisé dans Python, comme celui-ci: P> import cPickle as pickle
data = { 'user_id' : 5 }
pickled = pickle.dumps(data)
print pickled
4 Réponses :
Si vous souhaitez partager des objets de données entre les programmes écrits dans différentes langues, il pourrait être plus facile de sérialiser / désérialiser à l'aide de quelque chose comme Json à la place. La plupart des principales langues de programmation ont une bibliothèque JSON. P>
Python 2.6+ a-t-il intégré et il y a SimpleJson pour des versions antérieures.
Bien qu'une bonne idée, la partie de sérialisation ne soit pas sous mon contrôle.
J'ai d'abord pensé que je ne veux pas pirater l'application Django, mais encore une fois, cela pourrait être une solution plus rapide. Voici donc mon simple JSON SessionStore pour Django
Pouvez-vous faire un appel système? Vous pouvez utiliser un script Python comme celui-ci pour convertir les données de cornichon en Json: de cette façon, si vous obtenez les données d'un fichier, vous pouvez faire quelque chose comme ceci: p> < Pré> xxx pré> ou si vous souhaitez l'enregistrer dans un fichier ceci: p> tout le code ci-dessus n'est probablement pas parfait (i ' M Pas de développeur PHP), mais quelque chose comme ce travail pour vous? P> p>
Si le cornichon est créé par le code que vous avez montré, il ne contiendra pas de données binaires - à moins que vous n'appeliez de nouvelles lignes «Données binaires». Voir The Python Docs . Le code suivant a été exécuté par Python 2.6. Lequel des éléments ci-dessus ressemble le plus à ce que vous voyez? Pouvez-vous poster le contenu du fichier mariné comme affiché par un éditeur hexagonal / Dumper ou tout ce qui est l'équivalent PHP de la REVI de Python ()? Combien d'articles dans un dictionnaire typique? Quels types de données autres que «entier» et «chaîne d'octets de 8 bits» (quel codage?)? P> P>
Je sais que c'est ancien, mais j'ai juste besoin de le faire pour une application Django 1.3 (vers 2012) et a trouvé ceci: p>
https://github.com/terryf/phpickle p>
Donc, juste au cas où, un jour, quelqu'un d'autre a besoin de la même solution. P>
Vous avez mentionné la sérialisation n'est pas sous votre contrôle. Comment recevez-vous ces données marinées? Un fichier local?
Il provient de la base de données à Django, c'est Session_Data dans la table de session Django. Je finis probablement à écrire de la sessionMiddleware pour sérialiser la session_data comme JSON. Je viens de souhaiter que je n'ai pas eu à modifier l'application Django pour cela.