我最近制作的当前个人脚本存在问题,该脚本使用了一系列词典以及如何实现某种类型的结构。
这是原始结构:
[
{'airfare': 1000, 'place': 'nameOfPlace', 'email_to': '[email protected], [email protected]'},
{'airfare': 2000, 'place': 'nameOfPlace', 'email_to': '[email protected]'},
{'airfare': 3000, 'place': 'nameOfPlace', 'email_to': '[email protected]'},
{'airfare': 4000, 'place': 'nameOfPlace', 'email_to': '[email protected]'}
]
我希望实现这样的目标,我不知道这是否可行:
[{'email_to': '[email protected]',
'flight_details':[{'airfare': 1000, 'place': 'nameOfPlace' },
{'airfare': 2000, 'place': 'nameOfPlace'}]},
{'email_to': '[email protected]',
'flight_details':[{'airfare': 1000, 'place': 'nameOfPlace'},
{'airfare': 3000, 'place': 'nameOfPlace'}]},
{'email_to': '[email protected]',
'flight_details':[{'airfare': 4000, 'place': 'nameOfPlace'}]}]
编辑:我正在使用python 3.5,我从sqlite数据库中获取数据。数据按原始结构存储在字典列表中,我希望根据我提供的第二个结构将其保存在json文件中。
这会将字典操作为您需要的格式。但是以json出口可能是另一个问题。
d = [
{'airfare': 1000, 'place': 'nameOfPlace', 'email_to': '[email protected], [email protected]'},
{'airfare': 2000, 'place': 'nameOfPlace', 'email_to': '[email protected]'},
{'airfare': 3000, 'place': 'nameOfPlace', 'email_to': '[email protected]'},
{'airfare': 4000, 'place': 'nameOfPlace', 'email_to': '[email protected]'}
]
from collections import defaultdict
d_new = defaultdict(lambda: defaultdict(list))
for i in d:
i['email_to'] = i['email_to'].split(', ')
for email in i['email_to']:
d_new[email]['flight_details'].append({'airfare': i['airfare'], 'place': i['place']})
d_new
# defaultdict(<function __main__.<lambda>>,
# {'[email protected]': defaultdict(list,
# {'flight_details': [{'airfare': 1000,
# 'place': 'nameOfPlace'},
# {'airfare': 3000, 'place': 'nameOfPlace'}]}),
# '[email protected]': defaultdict(list,
# {'flight_details': [{'airfare': 4000,
# 'place': 'nameOfPlace'}]}),
# '[email protected]': defaultdict(list,
# {'flight_details': [{'airfare': 1000,
# 'place': 'nameOfPlace'},
# {'airfare': 2000, 'place': 'nameOfPlace'}]})})