擅长:python、mysql、java
<p>问题是循环末尾没有清空list1。这会导致list1在每个循环结束时的大小增加。只需在每个循环的开头清空list1即可获得所需的输出。请参阅下面的代码(我将变量<code>list</code>更改为<code>list_final</code>,因为list是一个类型,您不应该有与类型同名的变量):</p>
<pre><code>for index, row in df.iterrows():
list1 = []
list_final.append ({
"id" : int(row['id']),
"label" : str(row['label']),
"Customer" : list1
})
list1.append ({
"id" : str(row['id_customer']) ,
"label" : str(row['label_customer'])
})
</code></pre>
<p>输出现在是您所期望的:</p>
<pre><code>print(list_final)
[
{'id': 6, 'label': 'Sao Paulo', 'Customer': [{'id': 'CUST-99992', 'label': 'Brazil'}]},
{'id': 92, 'label': 'Hong Kong', 'Customer': [{'id': 'CUST-88888', 'label': 'China'}]}
]
</code></pre>