Python program to convert URL Parameters to Dictionary items

Python's implementation of a data structure known more commonly as an associative array is a dictionary. A dictionary is made up of key-value pairs, where each key corresponds to its associated value.

URL parameters (query strings) often need to be parsed into dictionaries for easier manipulation in web applications. This article demonstrates three different methods to convert URL parameters into Python dictionary items.

Methods Overview

The following approaches will be covered ?

  • Using urllib.parse.parse_qs() function

  • Using setdefault() and re.findall() functions

  • Using split() function

Example Input and Output

For all methods, we'll use this sample URL parameter string ?

Input

'tutorials=9&Point=3&Website=2&is=1&best=Yes'

Expected Output

{'tutorials': ['9'], 'Point': ['3'], 'Website': ['2'], 'is': ['1'], 'best': ['Yes']}

Using urllib.parse.parse_qs() Function

The urllib.parse.parse_qs() function is the most straightforward approach. It parses query strings where keys are created from the left side of "=" and returns lists of values from the right side.

Example

import urllib.parse

# Input string with URL parameters
input_string = 'tutorials=9&Point=3&Website=2&is=1&best=Yes'
print("Input String:", input_string)

# Convert URL parameters to dictionary using parse_qs()
result_params = urllib.parse.parse_qs(input_string)
print("Parsed URL Params:", result_params)
Input String: tutorials=9&Point=3&Website=2&is=1&best=Yes
Parsed URL Params: {'tutorials': ['9'], 'Point': ['3'], 'Website': ['2'], 'is': ['1'], 'best': ['Yes']}

Using setdefault() and re.findall() Functions

This method uses regular expressions to extract key-value pairs and the setdefault() method to build the dictionary with list values.

Example

import re

# Input string with URL parameters
input_string = 'tutorials=9&Point=3&Website=2&is=1&best=Yes'
print("Input String:", input_string)

# Extract all key-value pairs using regex
all_params = re.findall(r'([^=&]+)=([^=&]+)', input_string)

# Create dictionary to store URL parameters
resultant_dict = dict()

# Process each key-value pair
for key, value in all_params:
    # Use setdefault to create list and append value
    resultant_dict.setdefault(key, []).append(value)

print("Parsed URL Params:", resultant_dict)
Input String: tutorials=9&Point=3&Website=2&is=1&best=Yes
Parsed URL Params: {'tutorials': ['9'], 'Point': ['3'], 'Website': ['2'], 'is': ['1'], 'best': ['Yes']}

Using split() Function

This approach manually splits the URL parameter string using the split() method to separate parameters and key-value pairs.

Example

# Input string with URL parameters
input_string = 'tutorials=9&Point=3&Website=2&is=1&best=Yes'
print("Input String:", input_string)

# Create empty dictionary for storing parameters
resultant_dict = dict()

# Split string by '&' to get individual parameters
split_params = input_string.split("&")

# Process each parameter
for param in split_params:
    # Split each parameter by '=' to get key and value
    key, value = param.split("=")
    # Store as key-value pair with value as list
    resultant_dict[key] = [value]

print("Parsed URL Params:", resultant_dict)
Input String: tutorials=9&Point=3&Website=2&is=1&best=Yes
Parsed URL Params: {'tutorials': ['9'], 'Point': ['3'], 'Website': ['2'], 'is': ['1'], 'best': ['Yes']}

Method Comparison

Method Complexity Best For Handles Edge Cases
urllib.parse.parse_qs() Simple Standard URL parsing Yes
re.findall() Medium Custom parsing logic Partially
split() Simple Basic string manipulation No

Conclusion

For URL parameter parsing, urllib.parse.parse_qs() is the recommended approach as it handles edge cases and follows web standards. The split() method works for simple cases, while regex provides flexibility for custom parsing requirements.

Updated on: 2026-03-27T13:02:39+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements