回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图将值附加到一个列表中,其中键是一个元组。但我一直得到keyrerror,因为python中的字典不能访问元组作为键</p>
<p>注:我想做的是:</p>
<ol>
<li>我有一个json文件。我正在尝试按n项分组,这将是我的字典密钥。然后,我将为tuple的键返回相应的字典列表</李>
<li>我试着在函数中这样做</李>
</ol>
<p>请在下面找到我的示例代码:</p>
<pre><code>def group_by_field(data, fields):
if len(fields) > 1:
groups = {fields: []}
for parameter in data:
for k, v in groups.items():
for i in fields:
if i in k:
groups[parameter[k]].append(parameter)
return groups
</code></pre>
<p>以下是我尝试实现该功能的示例:</p>
<pre><code>group_by_field(scripts, ('bnf_name', 'bnf_code'))
</code></pre>
<p>其中<code>scripts</code>是一个json文件</p>
<p>以下是json对象<code>scripts</code>的外观:</p>
<pre><code>[{'bnf_code': '0101010G0AAABAB',
'items': 2,
'practice': 'N81013',
'bnf_name': 'Co-Magaldrox_Susp 195mg/220mg/5ml S/F',
'nic': 5.98,
'act_cost': 5.56,
'quantity': 1000},
{'bnf_code': '0101021B0AAAHAH',
'items': 1,
'practice': 'N81013',
'bnf_name': 'Alginate_Raft-Forming Oral Susp S/F',
'nic': 1.95,
'act_cost': 1.82,
'quantity': 500}]
</code></pre>
<p>以下是示例输出的外观:</p>
<pre><code>{('Co-Magaldrox_Susp 195mg/220mg/5ml S/F', '0101010G0AAABAB'): [{'bnf_code': '0101010G0AAABAB',
'items': 2,
'practice': 'N81013',
'bnf_name': 'Co-Magaldrox_Susp 195mg/220mg/5ml S/F',
'nic': 5.98,
'act_cost': 5.56,
'quantity': 1000}],
('Alginate_Raft-Forming Oral Susp S/F', '0101021B0AAAHAH'): [{'bnf_code': '0101021B0AAAHAH',
'items': 1,
'practice': 'N81013',
'bnf_name': 'Alginate_Raft-Forming Oral Susp S/F',
'nic': 1.95,
'act_cost': 1.82,
'quantity': 500}]
</code></pre>