api_helper.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:apimatic-cli 作者: apimatic 项目源码 文件源码
def append_url_with_query_parameters(url,
                                         parameters,
                                         array_serialization="indexed"):
        """Adds query parameters to a URL.

        Args:
            url (str): The URL string.
            parameters (dict): The query parameters to add to the URL.
            array_serialization (str): The format of array parameter serialization.

        Returns:
            str: URL with added query parameters.

        """
        # Parameter validation
        if url is None:
            raise ValueError("URL is None.")
        if parameters is None:
            return url

        for key, value in parameters.items():
            seperator = '&' if '?' in url else '?'
            if not value is None:
                if isinstance(value, list):
                    value = [element for element in value if element]
                    if array_serialization is "csv":
                        url += "{0}{1}={2}".format(seperator, key,
                            ",".join(quote(str(x), safe='') for x in value))
                    elif array_serialization is "psv":
                        url += "{0}{1}={2}".format(seperator, key,
                            "|".join(quote(str(x), safe='') for x in value))
                    elif array_serialization is "tsv":
                        url += "{0}{1}={2}".format(seperator, key,
                            "\t".join(quote(str(x), safe='') for x in value))
                    else:
                        url += "{0}{1}".format(seperator,
                            "&".join(("{0}={1}".format(k, quote(str(v), safe='')))
                                for k, v in APIHelper.serialize_array(key, value, array_serialization)))
                else:
                    url += "{0}{1}={2}".format(seperator, key, quote(str(value), safe=''))

        return url
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号