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:
To access the field with a literal dot in the name (kubernetes.namespace), use:
result
To access the nested field inside the kubernetes object (kubernetes.namespace), use:
result
2. Field names with spaces
Dot notation doesn’t support spaces. Use bracket notation:
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 |