登录|注册|帮助中心|联系我们

导航
首页 综合百科 生活常识 数码科技 明星名人 传统文化 互联网 健康 影视 美食 教育 旅游 汽车 职场 时尚 运动 游戏 家电 地理 房产 金融 节日 服饰 乐器 歌曲 动物 植物
当前位置:首页 > 职场

python与php哪个好(python项目管理方法)

发布时间:2023年1月3日责任编辑:林大生标签:项目管理方法python
1. 介绍

1.1 介绍

福哥在用Python去读PHP语言开发的项目的数据库的时候,发现一些字段里存储的居然是经过PHP的serialize函数序列化过的数据,这个要解开它通过json库是不行的了,怎么办呢?

原来Python专门有个库用来模拟PHP语言的serialize和unserialize的功能,它就是phpserialize库。

2. 安装

phpserialize库可以直接通过pip进行安装。

pip3 install phpserialize 3. 使用

3.1 序列化

使用phpserialize库序列化一个结构转化为一个字符串用到的是dumps方法,用法和json库类似,区别是编码参数不是encoding是charset。

user = {    \\\'id\\\': 35,    \\\'name\\\': "福哥",    \\\'abilities\\\': [        "PHP",        "Java",        "Python",        "Javascript",        "C/C++",        "Asp.net"    ]}print("原始数据:")print(user)print("序列化数据:")userSN = phpserialize.dumps(user, charset="utf-8")print(userSN) ???

可以看到序列化的结果和PHP的serialize基本一致。因为福哥设置的编码的UTF-8的,所以“福哥”占用了6个字符。

4. 反序列化

使用phpserialize库反序列化一个序列化字符串得到原始数据结构用的是loads方法,用法和json库基本一样,同样编码参数也是charset而不是我们想象的encoding。

userSN = b"a:3:{s:2:"id";i:35;s:4:"name";s:6:"xe7xa6x8fxe5x93xa5";s:9:"abilities";a:6:{i:0;s:3:"PHP";i:1;s:4:"Java";i:2;s:6:"Python";i:3;s:10:"Javascript";i:4;s:5:"C/C++";i:5;s:7:"Asp.net";}}"print("序列化数据:")print(userSN)print("原始数据:")user = phpserialize.loads(userSN, charset="utf-8")print(user) ???

反序列化的时候最好也加上编码参数,避免以默认编码反序列化出现错误的情况。

5. 总结

福哥今天带着童鞋们学习了Python的phpserialize库的使用方法,通过phpserialize库可以让Python语言拥有解析PHP的序列化数据的能力。

其它知识推荐

溜溜百科知识网——分享日常生活学习工作各类知识。 垃圾信息处理邮箱 tousu589@163.com
icp备案号 闽ICP备14012035号-2 互联网安全管理备案 不良信息举报平台 Copyright 2023 www.6za.net All Rights Reserved