Json JQ can';t解析\u2022字符
我正在尝试批量上传到Elasticsearch(大约1百万个文档)。为此,我使用jq重新格式化从MySQL数据库提取的JSON文件,并使用curl将数据发布到Elasticsearch:Json JQ can';t解析\u2022字符,json,unicode,jq,Json,Unicode,Jq,我正在尝试批量上传到Elasticsearch(大约1百万个文档)。为此,我使用jq重新格式化从MySQL数据库提取的JSON文件,并使用curl将数据发布到Elasticsearch: cat dataset.json | jq -r -c '.[] | { "index" : { } }, .' | curl -u login:password -H "Content-Type: application/json" -XPOST "https://.../skills/default/_bu
cat dataset.json | jq -r -c '.[] | { "index" : { } }, .' | curl -u login:password -H "Content-Type: application/json" -XPOST "https://.../skills/default/_bulk?pretty" --data-binary @-
我得到一个错误:
分析错误:无效字符串:从U+0000到U+001F的控制字符必须在第276249行第317列转义
我发现jq无法解析的字符是\u2022。我尝试添加“-r”jq命令,但仍然出现错误。我如何处理\u2022的所有事件?以下是验证在Mac环境中,jq的不同版本是否正确处理了
\u2022
:
$ echo '"\u2022"' | jq-1.4 .
"•"
$ echo '"•"' | jq-1.6 .
"•"
$ echo '"•"' | jq-1.5 .
"•"
$ echo '"•"' | jq-1.4 .
"•"
$
问题可能与JQ1.5发布后修复的bug有关(参见示例)
如果您在使用jq 1.6版(当前版本)时遇到困难,请提供
有关计算环境的更多详细信息。请遵循指导原则。