J'ai une colonne dont les valeurs sont stockées sous forme de liste. La colonne ressemble à:
{'firebase_screen_class': 'MainViewController', 'firebase_event_origin': 'auto', 'firebase_screen_id': '81265142482196321', 'engagement_time_msec': '3374'}
Je veux convertir ceci en une colonne qui ressemble à:
[{'key': 'firebase_screen_class', 'value': 'MainViewController'}, {'key': 'firebase_event_origin', 'value': 'auto'}, {'key': 'firebase_screen_id', 'value': '81265142482196321'}, {'key': 'engagement_time_msec', 'value': '3374'}]
4 Réponses :
vous pouvez simplement le faire en utilisant la boucle for:
l1 = [{'key': 'firebase_screen_class', 'value': 'MainViewController'}, {'key': 'firebase_event_origin', 'value': 'auto'}, {'key': 'firebase_screen_id', 'value': '81265142482196321'}, {'key': 'engagement_time_msec', 'value': '3374'}] final_dict = {} for d1 in l1: final_dict[d1['key']] = d1['value'] print final_dict
Utilisez une compréhension de dictionnaire:
{d['key']:d['value'] for d in col}
où col
est votre colonne d'origine.
list = [{'key': 'firebase_screen_class', 'value': 'MainViewController'}, {'key': 'firebase_event_origin', 'value': 'auto'}, {'key': 'firebase_screen_id', 'value': '81265142482196321'}, {'key': 'engagement_time_msec', 'value': '3374'}] result = dict() for d in list: result[d['key']] = d['value']
def dd(arr): di = {} for j in arr: di[j['key']] = j['value'] return di df['new_cil'] = df['col'].map(dd)
Astuce: pour chaque clé, sa valeur est la clé pour vous et pour la valeur sa clé est la valeur pour vous.