Registry / web-framework / querystring-parser

querystring-parser

JSON →
library1.2.4pypypi✓ verified 35d ago

querystring-parser is a Python library designed for parsing URL query strings, particularly within Python and Django projects. Its key feature is the ability to correctly interpret and construct nested dictionaries from complex query string data, such as that often sent from HTML forms. The current version is 1.2.4, and its release cadence appears mature with infrequent updates.

web-frameworkserialization
Install & Compatibility
Where this runs
tested against v1.2.4 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.925 runs
installs and imports cleanly · install 0.0s · import 0.021s · 17.9MB
glibc
py 3.103.925 runs
installs and imports cleanly · install 1.6s · import 0.021s · 18MB
16MB installed
● package 16MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

from querystring_parser import parser

Parse a query string into a nested Python dictionary. The library automatically handles URL-encoded values and converts array-like syntax (e.g., `items[]=value`) and dot notation (e.g., `user.name=value`) into appropriate dictionary structures.

from querystring_parser import parser query_string = 'name=John%20Doe&address[city]=New%20York&address[zip]=10001&items[]=apple&items[]=banana' parsed_data = parser.parse(query_string) print(parsed_data) # Expected output: {'name': 'John Doe', 'address': {'city': 'New York', 'zip': '10001'}, 'items': ['apple', 'banana']} # Example with Django-style nested dicts (though library handles both standard and Django form data) query_string_django = 'user.name=Alice&user.email=alice@example.com' parsed_data_django = parser.parse(query_string_django) print(parsed_data_django) # Expected output: {'user': {'name': 'Alice', 'email': 'alice@example.com'}}
Debug
Known footguns
gotchaUnlike Python's built-in `urllib.parse.parse_qs` which returns lists for all values and flattens nested structures (e.g., `a[b]=c` becomes `{'a[b]': ['c']}`), `querystring-parser` is specifically designed to correctly build nested dictionaries from such inputs. This difference is its primary purpose but can be a 'gotcha' if expecting standard library behavior.
gotchaFor complex query strings, especially those containing multidimensional arrays, `querystring-parser` can be significantly slower than standard parsing methods due to the overhead of constructing nested dictionaries. Benchmarks suggest similar performance for simple cases, but a performance penalty for highly nested structures.
gotchaMultiple Python libraries exist with similar names (e.g., `django-query-string-parser`, `pyquerystring`, `querystring`). Ensure you are installing and importing `querystring-parser` (from `bernii/querystring-parser` on GitHub) to get the specific functionality for nested dictionary parsing.
gotchaWhile `querystring-parser` correctly handles nested structures, general security considerations for parsing user-supplied query strings still apply. Unsanitized input, regardless of parser, can lead to vulnerabilities like Injection Attacks or Cross-Site Scripting (XSS).
Upgrade
Version history

Breaking-change detection hasn't run for this library yet.

Audit
Security & dependencies

CVE tracking and dependency tree are planned for a later release.

Agent activity
9 hits · last 30 days
gptbot
4
ahrefsbot
4
bingbot
1
Resources