<p>一种解决方案是使用<code>OrderedDict</code>和<code>for</code>循环。你知道吗</p>
<pre><code>from collections import OrderedDict
order_of_keys = ["id", "question", "choice1", "choice2", "choice3", "choice4", "solution"]
input_dict = {'id': {0: 'CB_1', 1: 'CB_2'},
'question': {0: 'Who is Ghoulsbee Scroggins?', 1: 'Who is Ebeneezer Yakbain?'},
'choice1': {0: 'Cat', 1: 'A mathematician'},
'choice2': {0: 'Dog', 1: 'A mathematician'},
'choice3': {0: 'Ape', 1: 'A mathematician'},
'choice4': {0: 'Astrophysicist', 1: 'A mathematician'},
'solution': {0: 'Ape', 1: 'A mathematician'}}
res = []
for key in input_dict['id']:
d = OrderedDict()
d['id'] = key
for k in order_of_keys[1:]:
d[k] = input_dict[k][key]
res.append(d)
</code></pre>
<p><strong>结果</strong></p>
<pre><code>[OrderedDict([('id', 0),
('question', 'Who is Ghoulsbee Scroggins?'),
('choice1', 'Cat'),
('choice2', 'Dog'),
('choice3', 'Ape'),
('choice4', 'Astrophysicist'),
('solution', 'Ape')]),
OrderedDict([('id', 1),
('question', 'Who is Ebeneezer Yakbain?'),
('choice1', 'A mathematician'),
('choice2', 'A mathematician'),
('choice3', 'A mathematician'),
('choice4', 'A mathematician'),
('solution', 'A mathematician')])]
</code></pre>
<p><strong>解释</strong></p>
<ul>
<li>创建一个子类<code>OrderedDict</code>并将空列表定义为默认值的类。你知道吗</li>
<li>循环通过每个<code>id</code>。对于每个<code>id</code>,将项添加到与给定列表<code>order_or_keys</code>对齐的有序字典中。你知道吗</li>
<li>将每个<code>OrderedDict</code>追加到结果列表。你知道吗</li>
</ul>