超过2个字典的融合挣扎

2024-09-27 07:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有7本词典,我想把它们一本和另一本合并起来:

这些词典都经过单独测试,似乎都遵循相同的结构:

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}
  }
}

我试着把这篇文章后面的7本词典合并起来:

How to merge two dictionaries in a single expression?

我尝试的方法是将输出字典的函数合并为:

^{pr2}$

但是,当我运行合并字典时,它会输出:

TypeError: 'str' object is not a mapping

我也看过这篇文章merging "several" python dictionaries,我试过:

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

然而,输出results7()字典并保持思考(好像它应该输出其他东西,但没有输出)

使用这两个字典所需的输出将是合并的词典:

{
"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
    }
  }
}

我怎样才能得到一个合并了7个单独的字典的超级字典?在


Tags: in字典typetests词典co2test1test2
2条回答

输出相应字典的函数是typestr,因此我试图得到每个函数,并在Ignacio Vazquez Abrams的帮助下将它们转换成jsons

format_results1=json.loads(results1())
format_results2=json.loads(results2())

在这样做之后,我使用了@gsi frank response,在dicts列表中插入format_results。 最后我得到了合并后的词典。在

简而言之,问题是字典的type,我把它们变成json,然后能把它们合并在一起。在

感谢每一位花时间阅读我的帖子和提供答案的人。在

我真的不知道我是否理解你的问题,但这可能是一个解决办法:

dicts=[results1(),results2(),results3(),results4(),results5(),results6(),results7()]

merge_dictionaries = {k: v for d in dicts for k,v in d.items()}

很高兴知道一个清晰、简短但完整的输入和输出示例。在

我想更具Python风格的unpacking解决方案并不适合您,因为您使用的是Python<;3.5。在

相关问题 更多 >

    热门问题