所以我尝试为ADO管道编写一个yaml,因此它使用ADO语法。但不知何故,在这个过程中,有些人“迷路了,我不知道为什么。下面是我的yaml文件:
parameters:
- name: dictionary
type: string
default: '{\"PartitionKey\": \"test\", \"RowKey\":\"test1\"}'
steps:
- script: |
echo ${{ parameters.dictionary }}
- task: PythonScript@0
inputs:
scriptSource: 'filePath'
scriptPath: path/table.py
arguments: --output_parameters ${{ parameters.dictionary }}
字符串echo ${{ parameters.dictionary }}
的输出为{"PartitionKey": "test", "RowKey":"test1"}
在我的python脚本中,print(args.output_parameters)
的输出是{\PartitionKey": "test", "RowKey":"test1"}
错误消息如下,因为我试图获取字典(my_entity= json.loads(args.output_parameters)
):
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
型
那么,为什么在第一个键“PartitionKey”前面有一个\而不是一个“,即使它似乎对所有其他键值对都很好?
1条答案
按热度按时间iqjalb3h1#
this answer可以帮助:
单引号允许您将几乎任何字符放入字符串中,并且不会尝试解析转义码。'\n'将作为字符串返回\n