Python 2.7 如何在python中转换此词典?

Python 2.7 如何在python中转换此词典?,python-2.7,dictionary,Python 2.7,Dictionary,我将从一个外部API获得以下格式的字典结果: {data:[{value:[{'end_time':'2013-10-03T07:00:00+0000',value:{'mobile':4,'search':3}}},{'end_time':'2013-10-04T07:00:00+0000',value:{'source':2}]} 我想把它转换成以下格式的字典: {'2013-10-03T07:00:00+0000':{'mobile':4,'search':3},'2013-10-04T0

我将从一个外部API获得以下格式的字典结果:

{data:[{value:[{'end_time':'2013-10-03T07:00:00+0000',value:{'mobile':4,'search':3}}},{'end_time':'2013-10-04T07:00:00+0000',value:{'source':2}]}

我想把它转换成以下格式的字典:

{'2013-10-03T07:00:00+0000':{'mobile':4,'search':3},'2013-10-04T07:00:00+0000':{'source':2}

当我尝试以下操作时,得到错误
SyntaxError:keyword不能是以
output\u dict
开头的行的表达式:

def dict_cleaner(input_dict):
    for day in input_dict['data'][0]['values'][0]['end_time']:
        output_dict = dict(input_dict['data'][0]['values'][0]['end_time']=input_dict['data'][0]['values'][0]['value'])
    return output_dict

我做错了什么

凯文是对的。如果你想创造一个dict,为什么不直接做呢

{input_dict['data'][0]['values'][0]['end_time']: input_dict['data'][0]['values'][0]['value']}
此外,你可以尝试理解而不是循环

output_dict = {d['end_time']: d['value'] for d in input_dict['data'][0]['values']}

在第三行,在对
dict
的调用中,您编写了
input\u dict['data'][0]['values'][0]['end\u time']=input\u dict['data'][0]['values'][0]['value']
。这是什么意思?我认为Python不喜欢有等号,我尝试使用dict(key=value)创建和更新字典。可能问题是,如果我循环浏览这个字典,当它尝试添加第二个值时,它会阻塞,因此可能我应该首先执行output\u dict=dict(),然后执行output\u dict.update=dict(key=value)。但是,现在我看到了,你完全正确,我甚至不需要这个循环。
update
可能是个好主意,尽管
output\u dict.update=…
没有太多意义
update
是一个方法,因此您应该使用括号调用它,而不是使用equals分配给它。