How to make sure that values for all keys with same name are strings?

Hii,

I have a structure like this:

Do you need to do this natively handling the data structure in a playbook or would a degree of preprocessing be OK?

You might be able set the style using yq as one option? Possibly in combination with key matching?

https://mikefarah.gitbook.io/yq/operators/style#set-single-quote-style

I saw https://github.com/ansible/proposals/issues/72 and thought that maybe the history may help.

I can remember padding with a space to keep an ID a string that the consumer filters out but YMMV

Turns out the problem isn’t so much with the yaml, but with the ‘yq’ that I use to fetch some values from it.

That yq is the one from PyPI, and interprets the string 036001814778 as an int and then chokes on it:

dick.visser@GA dick$ cat foo.yml
state:
owner_id: 036001814778
dick.visser@GA dick$ yq -r . foo.yml
yq: Error running jq: ValueError: invalid literal for int() with base 8: ‘036001814778’.

There is an issue about this (https://github.com/kislyuk/yq/issues/152) and that seems to have been fixed this very week.
I could wait for that.

But, for my use case (a state file that contains some AWS infra), I figured I’d rather avoid any more YAML issues and just use a JSON file instead (which works).

thx!