Kusto extractjson 无法使用电子邮件地址
Kusto extractjson not working with email address
我正在尝试使用 extractjson() 方法,该方法在源数据中包含电子邮件地址(特别是 @ 符号)。
let T = datatable(MyString:string)
[
'{"user@domain.com": {"value":10}, "userdomain.com": { "value": 5}}'
];
T
| project extractjson('$.["user@domain.com"].value', MyString)
这会导致 returned 为 null,将 JSONPath 更改为“$.["userdomain.com"].value' return 会得到正确的结果。
Results
我知道@符号在过滤器表达式中用作当前节点,与 KQL 一起使用时是否需要转义?
作为旁注,我 运行 使用节点 'jsonpath' 包进行了相同的测试,并且按预期工作。
const jp = require('jsonpath');
const data = {"user@domain.com": {"value":10}, "name2": { "value": 5}};
console.log(jp.query(data, '$["user@domain.com"].score'));
您可以使用 parse_json()
函数代替,当您 没有 时使用 extract_json()
:
print MyString = '{"user@domain.com": {"value":10}, "userdomain.com": { "value": 5}}'
| project parse_json(MyString)["user@domain.com"].value
MyString_user@domain.com_value
10
来自文档:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/extractjsonfunction
我正在尝试使用 extractjson() 方法,该方法在源数据中包含电子邮件地址(特别是 @ 符号)。
let T = datatable(MyString:string)
[
'{"user@domain.com": {"value":10}, "userdomain.com": { "value": 5}}'
];
T
| project extractjson('$.["user@domain.com"].value', MyString)
这会导致 returned 为 null,将 JSONPath 更改为“$.["userdomain.com"].value' return 会得到正确的结果。
Results
我知道@符号在过滤器表达式中用作当前节点,与 KQL 一起使用时是否需要转义?
作为旁注,我 运行 使用节点 'jsonpath' 包进行了相同的测试,并且按预期工作。
const jp = require('jsonpath');
const data = {"user@domain.com": {"value":10}, "name2": { "value": 5}};
console.log(jp.query(data, '$["user@domain.com"].score'));
您可以使用 parse_json()
函数代替,当您 没有 时使用 extract_json()
:
print MyString = '{"user@domain.com": {"value":10}, "userdomain.com": { "value": 5}}'
| project parse_json(MyString)["user@domain.com"].value
MyString_user@domain.com_value |
---|
10 |
来自文档:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/extractjsonfunction