Put object


This command allows you to modify data at a given selector.

It generally works in the same way as put, but allows you to write entire maps with a single command.

Note that put object will completely overwrite any existing data at the given selector.


dasel put object -f <file> -t <type> -t <type> <selector> <value:key=value> <value:key=value>

Omit the types and values to create an empty object/map.



-t, <type>

The type of value you want to put.

You must repeat this argument for each value provided.

Available arguments:

  • string

  • int

  • bool


The key + value to write askey=value

Dasel will parse this value as a string, int, or bool depending on the given type.

This is required.

-f, --file

Specify the file to query. This is required unless you are piping in data.

If piping in data you can optionally pass -f stdin/-f -.

-o, --out

Specify the output file. If present, results will be written to the given file. If not present, results will be written to the input file (or stdout if none given).

To force output to be written to stdout, pass -o stdoutor-o -.

-r, --read

Specify the parser to use when reading the input data.

This is required if you are piping in data, otherwise dasel will use the given file extension to guess which parser to use.

See supported file types.

-w, --write

Specify the parser to use when writing the output data.

If not provided dasel will attempt to use the --out and --read flags to determine which parser to use.

See supported file types.

-p, --parser

Shorthand for -r <value> -w <value>

-m, --multiple

Tells dasel to put multiple items.

See multiple.

-s, --selector, <selector>

Specify the selector to use. See selectors for more information.

If no selector flag is given, dasel assumes the first argument given is the selector.

This is required.


By default, dasel formats the output using the specified parser.

If this flag is used no formatting occurs and the results output as a string.

-c, --compact

This tells dasel to output compact data where possible. E.g. not pretty printing JSON.


See merge input documents.


Put object

echo "" |
dasel put object -p yaml -t string -t int "my.favourites" colour=red number=3

Results in the following:

colour: red
number: 3