Json YAML_文件_错误:未找到预期的密钥

Json YAML_文件_错误:未找到预期的密钥,json,yaml,aws-codebuild,pyyaml,Json,Yaml,Aws Codebuild,Pyyaml,我尝试使用aws codeBuild运行Buildspec,并尝试使用jq命令动态生成process.json文件。但它在执行时出错,生成失败 build: commands: - cp $CODEBUILD_SRC_DIR/qe/performance/* apache-jmeter-5.2/bin/ - cd apache-jmeter-5.2/bin/ - DATE

我尝试使用aws codeBuild运行Buildspec,并尝试使用jq命令动态生成process.json文件。但它在执行时出错,生成失败

build: 
              commands:
                - cp $CODEBUILD_SRC_DIR/qe/performance/* apache-jmeter-5.2/bin/
                - cd apache-jmeter-5.2/bin/
                - DATE=`date "+%Y%m%d-%H-%M-%S"`
                - aws s3 cp $DATE-Report s3://$JMeterScanResultBucket/${ProjectName}/$DATE --recursive
                - jq -n --arg appname "$appname" '{apps: [ {project: wsg, issuetype: "Test Execution", summary: "Test Execution for junit Execution"}]}' > process.json
然而,我收到了以下错误:第20行转到上面的“jq”命令

YAML中的冒号加空格(或换行符)表示它是映射中的键值对:

key: value
jq命令包含几个冒号,后跟空格

因为您需要一个字符串,所以必须引用它

在YAML中有几种方法可以做到这一点

单引号或双引号在这里并不理想,因为字符串包含两种引号类型

A可能是这里最好的解决方案。换行符将作为空格折叠在一起

- >
  jq -n --arg appname "$appname"
  '{apps: [ {project: wsg, issuetype: "Test Execution",
  summary: "Test Execution for junit Execution"}]}'
  > process.json

另一种选择是,您必须像在shell脚本中一样转义换行符:

- |
  jq -n --arg appname "$appname" \
  '{apps: [ {project: wsg, issuetype: "Test Execution", \
  summary: "Test Execution for junit Execution"}]}' \
  > process.json

我写了一个答案。我没有得到报酬。至少让我知道它是否有用是很好的。天尼塔……非常感谢您的及时回复。一、 然而,他们开始着手处理其他优先事项。但我刚刚测试了这个功能,它实际上在定义区分行时起作用。非常感谢!如果答案解决了你的问题,你应该接受它。
- |
  jq -n --arg appname "$appname" \
  '{apps: [ {project: wsg, issuetype: "Test Execution", \
  summary: "Test Execution for junit Execution"}]}' \
  > process.json