Python 2.7 如何将字典从一种格式更改为另一种格式?

Python 2.7 如何将字典从一种格式更改为另一种格式?,python-2.7,dictionary,Python 2.7,Dictionary,我很确定这是一个n00b问题,但我似乎无法理解。谢谢你的帮助 我有一个生成一系列文件的应用程序,每个文件中都有一个字典,格式如下: {date1:{key1:result1,key2:result2},date2:{key2:result3}} 我想计算出每个值的日平均值。因此,我想为每个唯一键创建一个字典,用于聚合所有文件的结果: unique\u key\u dict={date1:[file1\u result,file2\u result],date2:[file1\u result,f

我很确定这是一个n00b问题,但我似乎无法理解。谢谢你的帮助

我有一个生成一系列文件的应用程序,每个文件中都有一个字典,格式如下:

{date1:{key1:result1,key2:result2},date2:{key2:result3}}

我想计算出每个值的日平均值。因此,我想为每个唯一键创建一个字典,用于聚合所有文件的结果:

unique\u key\u dict={date1:[file1\u result,file2\u result],date2:[file1\u result,file2\u result]}

我不会预先知道密钥的名称或将有多少个唯一密钥,尽管在我的整个数据集中不会超过25个唯一密钥,而且出于速度原因,我只想打开每个文件一次

如何用Python编写以下内容

for date in file_dict:
    for key in file_dict[date]:
        # if key_dict does not exist from a previous file or date, create it
        # once the dictionary exists, append this value to the list tied to the date key.
我似乎不知道如何使用键的名称动态创建字典。如果我在动态打印他们的名字,我会为%s“%key进行dict\u,但我不是在打印,而是在创建字典

而且,我可以只创建一个大型目录。。。哪个更快?一本大词典还是15-25本单独的词典

这是它的一部分:

unique_key_dict = {}
for date in file_dict:
  for key in file_dict[date]:
    if date not in unique_key_dict: unique_key_dict[date] = []
    unique_key_dict[date].append(file_dict[date][key])
或者你想

unique_key_dict = {}
for date in file_dict:
  for key in file_dict[date]:
    if key not in unique_key_dict: unique_key_dict[key] = {}
    if date not in unique_key_dict[key]: unique_key_dict[key][date] = []
    unique_key_dict[key][date].append(file_dict[date][key])
然后有一个dict,它将每个键映射到一个dict,这些dict将日期映射到值数组

要在此之后获得平均值:

for key in unique_key_dict:
  for date in unique_key_dict[key]:
    avg = sum(float(x) for x in unique_key_dict[key][date]) / len(unique_key_dict[key][date])
    print key, date, avg

是的,但是我如何生成唯一的密钥dict部分来进行测试呢?首先,我非常感谢您的帮助!但是,当我想为每个唯一键创建单独的dict时,这只会创建一个唯一的dict。。。几乎像是
“dict\u for_uu%s”%key
,但我不是在打印,而是在尝试生成字典。这不是您上面写的。你为什么要这么多的DICT?呃,我特别写了:我想计算出每个数值的日平均值。因此,我想为每个唯一键创建一个字典,用于聚合所有文件的结果。我可以创建一个巨大的dict,但我很好奇如何用这种方式来代替它。我不知道一个大容量的dict是否能提高内存效率。唯一键的总数不应超过25。如果您想对文件进行一次传递,您将同时在内存中保存所有25个dict,因此内存使用情况应该相同。您如何将dict存储在文件中?它只是JSON。以下是一个示例:
{“2013-05-07T07:00:00+0000”:{“推荐页面”:1},“2013-04-19T07:00:00+0000”:{“页面配置文件”:1},“2013-01-07T08:00:00+0000”:{“手机”:2,“页面配置文件”:1}
您是否正在尝试创建一个名称类似于
dict\u的字典,即,动态创建具有特定名称的对象?如果是这样的话,这不是一个好主意,你应该按照@Foundinger的建议去做,并把它写进一篇口述。是的,这就是我想要创造的@DSM为什么这是个坏主意?我已经搜索过了,但是在Google或其他网站上都找不到与我有关的“为什么在python中动态创建对象是个坏主意”动态创建对象不是个坏主意。动态创建名称是个坏主意。请参阅,以及其中的链接。制作完这些对象后,您打算如何引用它们?要么你硬编码每个名字,并且有很多重复,要么你必须将它们存储在某种结构中,像列表或dict一样循环。但是在任何一种情况下,动态创建名字都不会有帮助。你认为这样做能让你克服口述吗?