回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个模式,我有一个嵌套字段列表,应该在其中。
基本上,我得到的是:</p>
<pre class="lang-py prettyprint-override"><code>[{'name': 'a', 'type': 'string'},
{'name': 'b', 'type': 'string'},
{'name': 'c', 'type': 'string'},
{'name': 'd', 'type': 'string'},
{'name': 'e', 'type': 'string'},
{'name': 'attr', 'type': 'string'},
{'name': 'f', 'type': 'string'},
{'name': 'g', 'type': 'string'},
{'name': 'h', 'type': 'string'},
{'name': 'i', 'type': 'string'},
{'name': 'j', 'type': 'string'},
{'name': 'k', 'type': 'string'}]
</code></pre>
<p>但是当“name”是“attr”时,我想向它添加另一个dictionary k-v对,键是“fields”,值是另一个嵌套的dictionary列表,格式与上面的相同。这将使它看起来像:</p>
<pre class="lang-py prettyprint-override"><code>[{'name': 'a', 'type': 'string'},
{'name': 'b', 'type': 'string'},
{'name': 'c', 'type': 'string'},
{'name': 'd', 'type': 'string'},
{'name': 'e', 'type': 'string'},
{'name': 'attr', 'type': 'string', 'fields': [{'name': 'aa',....}],
{'name': 'f', 'type': 'string'},
{'name': 'g', 'type': 'string'},
{'name': 'h', 'type': 'string'},
{'name': 'i', 'type': 'string'},
{'name': 'j', 'type': 'string'},
{'name': 'k', 'type': 'string'}]
</code></pre>
<p>下面,主模式集和嵌套模式集都是我转换的集。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>finalschema = [{'name':l} for l in master_schema_set]
finalschemanested = [{'name':l} for l in nestedschemaset]
for i in finalschema:
i.update({"type":'string'}) #all types will always be string
for item,val in i.items():
if val == 'attr':
i.update({'fields':finalschemanested})
</code></pre>
<p>运行它会给我一个错误“dictionary changed size during iteration”,但最终这就是我想要的。实现这一目标的更好方法是什么?你知道吗</p>