python php 序列化,Python phpserialize包_程序模块 - PyPI - Python中文网

用法>>> from phpserialize import *

>>> obj = dumps("Hello World")

>>> loads(obj)

'Hello World'

因为php不知道列表的概念

像php中的散列映射一样序列化。事实上

序列化列表的反向值是dict:>>> loads(dumps(range(2)))

{0: 0, 1: 1}

如果您想再次拥有一个列表,您可以使用

dict\u to\u列表

帮助函数:>>> dict_to_list(loads(dumps(range(2))))

[0, 1]

也可以通过使用dict to tuple将其转换为元组。

功能:>>> dict_to_tuple(loads(dumps((1, 2, 3))))

(1, 2, 3)

另一个问题是unicode字符串。默认情况下,Unicode字符串是

编码为"utf-8",但未在非序列化时解码。原因

这是phpSerialize无法猜测您是否有二进制或文本数据

在字符串中:>>> loads(dumps(u'Hello W\xf6rld'))

'Hello W\xc3\xb6rld'

如果知道结果中只有已知字符集的文本数据

您可以通过在调用时将

decode_strings

设置为true来解码字符串

负载:>>> loads(dumps(u'Hello W\xf6rld'), decode_strings=True)

u'Hello W\xf6rld'

字典键仅限于字符串和整数。

被转换

变成一个空字符串,并将浮点和布尔值变成php的整数。

兼容性:>>> loads(dumps({None: 14, 42.23: 'foo', True: [1, 2, 3]}))

{'': 14, 1: {0: 1, 1: 2, 2: 3}, 42: 'foo'}

它还提供从类似文件的对象中读取的功能:>>> from StringIO import StringIO

>>> stream = StringIO('a:2:{i:0;i:1;i:1;i:2;}')

>>> dict_to_list(load(stream))

[1, 2]

写信给那些人:>>> stream = StringIO()

>>> dump([1, 2], stream)

>>> stream.getvalue()

'a:2:{i:0;i:1;i:1;i:2;}'

支持对象的链接:>>> from phpserialize import *

>>> obj = dumps("Hello World")

>>> loads(obj)

'Hello World'

0

但是,php不支持此功能。php只会取消序列化

第一个对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值