回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在编写测试自动化,必须将变量中的所有值插入新字典,但出于某种原因,它总是只需要最后一个值。原因可能是什么</p>
<p>具有嵌套字典的变量:</p>
<pre><code>{'~Manager~': {"operatorId": 'in the selection list'},
'Candidate': {"AND":"", "operatorId": 'not in the selection list'},
...
'Description': {"operatorId": 'is empty'}}
</code></pre>
<pre><code>def _prepare_filters_json(self, pipeline: str, filter_to_add: dict):
new_filter = {"type": 'CONDITION', "id": 'any_id', "field": 'null',
"operatorId": 'null'}
source_fields = self.ssi_get_filter_source_fields(pipeline).json_path("$.data")
filters = self._get_filters(pipeline)
for source_field in source_fields:
for key in filter_to_add.keys():
if key == source_field["descriptor"]:
new_filter["field"] = source_field
return self._prepare_json(pipelineId=pipeline, filter=filters)
</code></pre>
<p><code>source_fields</code>返回字典列表。如果该列表中的值在我的变量中为<code>==</code>到dict.keys,则它应该更新我的<code>new_filter</code></p>
<p>实际结果:</p>
<pre><code>{'field': {'descriptor': 'Description',
'id': 'edee9a85b3fb4cb69b993139fc14ce46',
'returnType': 'Text'},
'id': 'any_id',
'operatorId': 'null',
'type': 'CONDITION'}
</code></pre>
<p>预期结果:</p>
<pre><code>{'field': {'descriptor': '~Manager~',
'id': 'edee9a85b3fb4cb69b993139fc123451',
'returnType': 'Text'},
'field': {'descriptor': 'Candidate',
'id': 'edee9a85b3fb4cb69b993139fc141111',
'returnType': 'Text'},
'field': {'descriptor': 'Description',
'id': 'edee9a85b3fb4cb69b993139fc14ce46',
'returnType': 'Text'},
'id': 'any_id',
'operatorId': 'null',
'type': 'CONDITION'}
</code></pre>