urlencode python中的多维字典

urlencode python中的多维字典,第1张

urlencode python中的多维字典

好的,人。我自己实现了它:

import urllibdef recursive_urlenpre(d):    """URL-enpre a multidimensional dictionary.    >>> data = {'a': 'b&c', 'd': {'e': {'f&g': 'h*i'}}, 'j': 'k'}    >>> recursive_urlenpre(data)    u'a=b%26c&j=k&d[e][f%26g]=h%2Ai'    """    def recursion(d, base=[]):        pairs = []        for key, value in d.items(): new_base = base + [key] if hasattr(value, 'values'):     pairs += recursion(value, new_base) else:     new_pair = None     if len(new_base) > 1:         first = urllib.quote(new_base.pop(0))         rest = map(lambda x: urllib.quote(x), new_base)         new_pair = "%s[%s]=%s" % (first, ']['.join(rest), urllib.quote(unipre(value)))     else:         new_pair = "%s=%s" % (urllib.quote(unipre(key)), urllib.quote(unipre(value)))     pairs.append(new_pair)        return pairs    return '&'.join(recursion(d))if __name__ == "__main__":    import doctest    doctest.testmod()

尽管如此,我还是想知道是否有更好的方法可以做到这一点。我不敢相信Python的标准库无法实现这一点。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存