回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有7本词典,我想把它们一本和另一本合并起来:</p>
<p>这些词典都经过单独测试,似乎都遵循相同的结构:</p>
<pre><code>results1()=
{
"NO4":
{
"type_tests":
{
"test1":1.0,
"test2":5.0,
"test3":14.0
}
},
"SO3":
{
"type_tests":
{"test1":1.0,
"test2":5.0,
"test3":14.0}
}
}
results2()=
{
"CO2":
{
"type_tests":
{
"test1":10.0,
"test2":51.0,
"test3":34.0
}
},
"H20":
{
"type_tests":
{"test1":1.0,
"test2":5.0,
"test3":14.0}
}
}
</code></pre>
<p>我试着把这篇文章后面的7本词典合并起来:</p>
<p><a href="https://stackoverflow.com/questions/38987/how-to-merge-two-dictionaries-in-a-single-expression">How to merge two dictionaries in a single expression?</a></p>
<p>我尝试的方法是将输出字典的函数合并为:</p>
^{pr2}$
<p>但是,当我运行合并字典时,它会输出:</p>
<pre><code>TypeError: 'str' object is not a mapping
</code></pre>
<p>我也看过这篇文章<a href="https://stackoverflow.com/questions/9415785/merging-several-python-dictionaries">merging "several" python dictionaries</a>,我试过:</p>
<pre><code>dicts=[results1(),results2(),results3(),results4(),results5(),results6(),results7()]
for d in dicts:
for k, v in d.iteritems():
super_dict[k].add(v)
return superdict
</code></pre>
<p>然而,输出<code>results7()</code>字典并保持思考(好像它应该输出其他东西,但没有输出)</p>
<p>使用这两个字典所需的输出将是合并的词典:</p>
<pre><code>{
"NO4":
{
"type_tests":
{
"test1":1.0,
"test2":5.0,
"test3":14.0
}
},
"SO3":
{
"type_tests":
{
"test1":1.0,
"test2":5.0,
"test3":14.0
}
},
"CO2":
{
"type_tests":
{
"test1":10.0,
"test2":51.0,
"test3":34.0
}
},
"H20":
{
"type_tests":
{
"test1":1.0,
"test2":5.0,
"test3":14.0
}
}
}
</code></pre>
<p>我怎样才能得到一个合并了7个单独的字典的超级字典?在</p>