在Python中解码StdClass
我正在用Python通过urllib查询WordPress.org的API。WordPress.org则用一个编码过的PHP StdClass对象来回应我。如果我用的是PHP,那就没问题了,但我必须用Python。有没有办法把这个转换成字典(不带s:10:"slijekgdds"这样的前缀)?
apiUrl = "http://api.wordpress.org/themes/info/1.0/"
body = urllib.urlencode({
'action': "query_themes",
'request': {
"browse": "featured",
'fields': {
'download_link': True,
'preview_url': False,
'screenshot_url': False,
'description': False,
'sections': False,
'screenshots': False,
'downloaded': False,
'screenshot_count': False
}
}
}, True)
request = urllib.urlopen(apiUrl, body)
response = request.read(200)
这个返回的是(截断的):
O:8:"stdClass":2:{
s:4:"info";
a:3:{
s:4:"page";
i:1;
s:5:"pages";
i:41;
s:7:"results";
i:610;
}
s:6:"themes";
a:15{
i:0;
O:8:"stdClass":10:{
#BLAH BLAH
}
}
}
1 个回答
0
根据这个链接,你需要用pip或者其他类似的工具来安装它。我猜这就是你想要的内容:
from phpserialize import loads, phpobject
python_object = loads(php_serialized_string, object_hook=phpobject)