Skip to main content

Accessing fields with special characters

Problem / Use case​

You want to access fields with special characters such as periods (.), dashes (-), spaces ( ), or emojis, etc...

Solution - $d​

You usually don’t need to use $d to access data fields in DataPrime. It’s the default namespace, so fields like status_code are automatically interpreted as $d.status_code.

But in these cases with special characters using $d is required.

1. Field names with dots​

If your field name includes a dot (.), DataPrime treats it as a nested path unless you use bracket notation. This can lead to unexpected behavior.

For example:

{
"kubernetes.namespace": "dev",
"kubernetes": {
"namespace": "prod"
}
}

To access the field with a literal dot in the name (kubernetes.namespace), use:

$d['kubernetes.namespace']

result

"dev"

To access the nested field inside the kubernetes object (kubernetes.namespace), use:

$d['kubernetes']['namespace']

result

"prod"

2. Field names with spaces​

Dot notation doesn’t support spaces. Use bracket notation:

choose $d['Total Salary']

3. Field names with emojis or non-ASCII characters​

Fields with special characters require brackets:

create face from case_equals {
$m.severity,
DEBUG -> '🧐',
VERBOSE -> 'πŸ˜Άβ€πŸŒ«οΈ',
INFO -> 'πŸ™‚',
WARNING -> '😬',
ERROR -> '😩',
CRITICAL -> 'πŸ’€',
_ -> '🀷'
}
| countby face as $d['πŸ™‚'] into $d['# of times I made this face']

Output:

"πŸ™‚""# of times I made this face"
πŸ’€17275
😩55821
😬13084
πŸ˜Άβ€πŸŒ«οΈ318376
πŸ™‚2958063
🧐3727783
Was this page helpful?