The each-value cursor performs transformations on each of the context object’s children.

When the context is a list, each value will be transformed. When the context is a dictionary, the key will be ignored and only the value will be transformed.


The code below uses the each-value cursor with the list-to-object transformer to reduce a dictionary of lists down to a dictionary of values.

from json import dumps
from recompose import CursorSchema, transform

data = {
    "first": ["one", "two", "three"],
    "second": ["four", "five", "six"],
    "third": ["seven", "eight", "nine"],

schema: CursorSchema = {
    "version": 1,
    "on": "each-value",
    "perform": "list-to-object",

transformed = transform(schema, data)
print(dumps(transformed, indent=4))


     "first": "one",
     "second": "four",
     "third": "seven"