在Python中解码StdClass

0 投票
1 回答
1114 浏览
提问于 2025-04-17 18:59

我正在用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)

撰写回答