Skip to content

Accessing fields with special characters

Problem / use case

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

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:

groupby $l.subsystemname as $d['Service-Name']
| aggregate count() as $d['TotalLogs😂']