[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/smmoosavi/querystring-parser/master/querystring_parser/builder.py [Back]  [Original]

# coding: utf-8
'''
Created on 2012-03-28

@author: Tomasz 'Doppler' Najdek

Updated 2012-04-01 Bernard 'berni' Kobos
'''

import urllib
import types

def build(item, encoding=None):
	def recursion(item, base=None):
		pairs = list()
		if(hasattr(item, 'values')):
			for key, value in item.items():
				if encoding:
					quoted_key = urllib.quote(unicode(key).encode(encoding))
				else:
					quoted_key = urllib.quote(unicode(key))
				if(base):
					new_base = "%s[%s]" % (base, quoted_key)
					pairs += recursion(value, new_base)
				else:
					new_base = quoted_key
					pairs += recursion(value, new_base)
		elif(isinstance(item, types.ListType)):
			for (index, value) in enumerate(item):
				if(base):
					new_base = "%s" % (base)
					pairs += recursion(value, new_base)
				else:
					pairs += recursion(value)
		else:
			if encoding:
				quoted_item = urllib.quote(unicode(item).encode(encoding))
			else:
				quoted_item = urllib.quote(unicode(item))
			if(base):
				pairs.append("%s=%s" % (base, quoted_item))
			else:
				pairs.append(quoted_item)
		return pairs
	return '&'.join(recursion(item))

Web Proxy Viewer  |  New URL  |  Original Page