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.