Peppercorn

0.6 · maintenance · verified Fri Apr 17

Peppercorn is a Python library designed to transform flat key-value pairs (common in web form posts, e.g., from `request.form`) into structured nested dictionaries and lists, and vice-versa. It handles dot-notation and array indexing in keys to reconstitute complex data structures. The current version is 0.6, and it appears to be in maintenance mode with infrequent updates.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates parsing a flat dictionary (representing form data) into a nested structure and then flattening it back.

import peppercorn

# Example form data, typically from request.form
form_data = {
    'items.0.name': 'Foo',
    'items.0.value': '123',
    'items.1.name': 'Bar',
    'items.1.value': '456',
    'user.name': 'Alice',
    'user.id': 'abc'
}

# Parse flat data into a nested structure
parsed_data = peppercorn.parse(form_data)
print("Parsed Data:", parsed_data)
# Expected: {'items': [{'name': 'Foo', 'value': '123'}, {'name': 'Bar', 'value': '456'}], 'user': {'name': 'Alice', 'id': 'abc'}}

# Flatten a nested structure back into flat form data
# (Often for use in template rendering or re-submitting)
flat_data = peppercorn.flatten(parsed_data)
print("Flattened Data:", flat_data)
# Expected: {'items.0.name': 'Foo', 'items.0.value': '123', 'items.1.name': 'Bar', 'items.1.value': '456', 'user.name': 'Alice', 'user.id': 'abc'}

view raw JSON →