JSON List Pluck (PixNodes)
Transpose a list of objects into per-field lists
- json_list
- plucked_list_1
- plucked_list_2
- plucked_list_3
- plucked_list_4
- plucked_list_5
- plucked_list_6
- plucked_list_7
- plucked_list_8
- plucked_list_9
- plucked_list_10
- plucked_list_11
- plucked_list_12
- plucked_list_13
- plucked_list_14
- plucked_list_15
- plucked_list_16
- plucked_list_17
- plucked_list_18
- plucked_list_19
- plucked_list_20
- plucked_list_21
- plucked_list_22
- plucked_list_23
- plucked_list_24
- plucked_list_25
- plucked_list_26
- plucked_list_27
- plucked_list_28
- plucked_list_29
- plucked_list_30
- plucked_list_31
- plucked_list_32
- plucked_list_33
- plucked_list_34
- plucked_list_35
- plucked_list_36
- plucked_list_37
- plucked_list_38
- plucked_list_39
- plucked_list_40
- plucked_list_41
- plucked_list_42
- plucked_list_43
- plucked_list_44
- plucked_list_45
- plucked_list_46
- plucked_list_47
- plucked_list_48
- plucked_list_49
- plucked_list_50
- plucked_list_51
- plucked_list_52
- plucked_list_53
- plucked_list_54
- plucked_list_55
- plucked_list_56
- plucked_list_57
- plucked_list_58
- plucked_list_59
- plucked_list_60
- plucked_list_61
- plucked_list_62
- plucked_list_63
- plucked_list_64
- plucked_list_65
- plucked_list_66
- plucked_list_67
- plucked_list_68
- plucked_list_69
- plucked_list_70
- plucked_list_71
- plucked_list_72
- plucked_list_73
- plucked_list_74
- plucked_list_75
- plucked_list_76
- plucked_list_77
- plucked_list_78
- plucked_list_79
- plucked_list_80
- plucked_list_81
- plucked_list_82
- plucked_list_83
- plucked_list_84
- plucked_list_85
- plucked_list_86
- plucked_list_87
- plucked_list_88
- plucked_list_89
- plucked_list_90
- plucked_list_91
- plucked_list_92
- plucked_list_93
- plucked_list_94
- plucked_list_95
- plucked_list_96
- plucked_list_97
- plucked_list_98
- plucked_list_99
- plucked_list_100
Imagine you've got a JSON list of shot objects, each with prompt, image, and duration fields, and you want a list of just the prompts. JSON List Pluck is the node for that: it pulls one field out of every object in a list and gives you a per-field list out of a dedicated port. It's a transpose - column extraction from a table-shaped list.
The input is a list of dictionaries (or a JSON string that parses into one). You type the field names you care about into filter_keys, one per line, and each one becomes its own output: plucked_list_1, plucked_list_2, and so on, up to 100 of them. The order of your keys maps to the output ports in order, so the node doubles as a way to fan one JSON list out into several parallel lists.
The matching is fuzzier than you'd expect
The nice surprise is how tolerant the field matching is. Type shot_prompt and it will find shotPrompt, shot_prompts, or even shots_prompts - the node normalizes keys (strips spaces/underscores/hyphens, lowercases), does stem matching (strips trailing s), and falls back on common variants. That's genuinely useful when you're feeding it JSON from an LLM that can't be trusted to name fields consistently. It'll also try to repair slightly-broken JSON text (single quotes, trailing commas, None/True literals) before giving up.
Two inputs do the configuring: json_list (wildcard) is the data, filter_keys (multiline string) is your field list, and merge_output (boolean, default off) flips the behavior - instead of separate per-field ports, everything gets merged into one list of objects.
The catch: 100 output ports
The node always exposes all 100 plucked_list_N outputs, and unused ones come back as None. That's a lot of visual noise on the canvas, and ComfyUI forces you to leave them all visible even if you only use two. It's the pack's "one node, maximum flexibility" design, and it's fine once you know to ignore the grayed-out sockets.
Install
Part of Comfyui-PixNodes. ComfyUI Manager → search "PixNodes" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/pixixai/Comfyui-PixNodes
then restart. (The README's manual-install line points at the wrong repo, ComfyUI-AlignLayout - use the URL above.)
Where it fits
This is a workhorse for storyboard and batch-generation data: pull all the prompts out of a shot list to feed a prompt-iteration loop, pull the image references out to feed a video loader. Pair it with JSON Slicer or List from Loop on the downstream side and you've got a clean data pipeline out of a single JSON blob. Just remember the JSON ports carry Python objects, not strings - if you need text out of here, route through the pack's JSON Unpacker.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| json_list | * | — | |
| filter_keys | STRING | list | — |
| merge_output | BOOLEAN | false | — |
Outputs (100)
| Name | Type | Description |
|---|---|---|
| plucked_list_1 | JSON | — |
| plucked_list_2 | JSON | — |
| plucked_list_3 | JSON | — |
| plucked_list_4 | JSON | — |
| plucked_list_5 | JSON | — |
| plucked_list_6 | JSON | — |
| plucked_list_7 | JSON | — |
| plucked_list_8 | JSON | — |
| plucked_list_9 | JSON | — |
| plucked_list_10 | JSON | — |
| plucked_list_11 | JSON | — |
| plucked_list_12 | JSON | — |
| plucked_list_13 | JSON | — |
| plucked_list_14 | JSON | — |
| plucked_list_15 | JSON | — |
| plucked_list_16 | JSON | — |
| plucked_list_17 | JSON | — |
| plucked_list_18 | JSON | — |
| plucked_list_19 | JSON | — |
| plucked_list_20 | JSON | — |
| plucked_list_21 | JSON | — |
| plucked_list_22 | JSON | — |
| plucked_list_23 | JSON | — |
| plucked_list_24 | JSON | — |
| plucked_list_25 | JSON | — |
| plucked_list_26 | JSON | — |
| plucked_list_27 | JSON | — |
| plucked_list_28 | JSON | — |
| plucked_list_29 | JSON | — |
| plucked_list_30 | JSON | — |
| plucked_list_31 | JSON | — |
| plucked_list_32 | JSON | — |
| plucked_list_33 | JSON | — |
| plucked_list_34 | JSON | — |
| plucked_list_35 | JSON | — |
| plucked_list_36 | JSON | — |
| plucked_list_37 | JSON | — |
| plucked_list_38 | JSON | — |
| plucked_list_39 | JSON | — |
| plucked_list_40 | JSON | — |
| plucked_list_41 | JSON | — |
| plucked_list_42 | JSON | — |
| plucked_list_43 | JSON | — |
| plucked_list_44 | JSON | — |
| plucked_list_45 | JSON | — |
| plucked_list_46 | JSON | — |
| plucked_list_47 | JSON | — |
| plucked_list_48 | JSON | — |
| plucked_list_49 | JSON | — |
| plucked_list_50 | JSON | — |
| plucked_list_51 | JSON | — |
| plucked_list_52 | JSON | — |
| plucked_list_53 | JSON | — |
| plucked_list_54 | JSON | — |
| plucked_list_55 | JSON | — |
| plucked_list_56 | JSON | — |
| plucked_list_57 | JSON | — |
| plucked_list_58 | JSON | — |
| plucked_list_59 | JSON | — |
| plucked_list_60 | JSON | — |
| plucked_list_61 | JSON | — |
| plucked_list_62 | JSON | — |
| plucked_list_63 | JSON | — |
| plucked_list_64 | JSON | — |
| plucked_list_65 | JSON | — |
| plucked_list_66 | JSON | — |
| plucked_list_67 | JSON | — |
| plucked_list_68 | JSON | — |
| plucked_list_69 | JSON | — |
| plucked_list_70 | JSON | — |
| plucked_list_71 | JSON | — |
| plucked_list_72 | JSON | — |
| plucked_list_73 | JSON | — |
| plucked_list_74 | JSON | — |
| plucked_list_75 | JSON | — |
| plucked_list_76 | JSON | — |
| plucked_list_77 | JSON | — |
| plucked_list_78 | JSON | — |
| plucked_list_79 | JSON | — |
| plucked_list_80 | JSON | — |
| plucked_list_81 | JSON | — |
| plucked_list_82 | JSON | — |
| plucked_list_83 | JSON | — |
| plucked_list_84 | JSON | — |
| plucked_list_85 | JSON | — |
| plucked_list_86 | JSON | — |
| plucked_list_87 | JSON | — |
| plucked_list_88 | JSON | — |
| plucked_list_89 | JSON | — |
| plucked_list_90 | JSON | — |
| plucked_list_91 | JSON | — |
| plucked_list_92 | JSON | — |
| plucked_list_93 | JSON | — |
| plucked_list_94 | JSON | — |
| plucked_list_95 | JSON | — |
| plucked_list_96 | JSON | — |
| plucked_list_97 | JSON | — |
| plucked_list_98 | JSON | — |
| plucked_list_99 | JSON | — |
| plucked_list_100 | JSON | — |