1

I have a column which has values stored as list. The column looks like:

[{'key': 'firebase_screen_class', 'value': 'MainViewController'},
 {'key': 'firebase_event_origin', 'value': 'auto'},
 {'key': 'firebase_screen_id', 'value': '81265142482196321'},
 {'key': 'engagement_time_msec', 'value': '3374'}]

I want to convert this into a column which looks like:

{'firebase_screen_class': 'MainViewController',
 'firebase_event_origin': 'auto',
 'firebase_screen_id': '81265142482196321',
 'engagement_time_msec': '3374'}
Zobia Kanwal
  • 4,085
  • 4
  • 15
  • 38
nk23
  • 179
  • 1
  • 10

4 Answers4

4

Use a dictionary comprehension:

{d['key']:d['value'] for d in col}

where col is your original column.

John Coleman
  • 51,337
  • 7
  • 54
  • 119
1

you can simply do it using for loop:

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
Amit Nanaware
  • 3,203
  • 1
  • 6
  • 19
1
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']
irezwi
  • 789
  • 8
  • 14
0
def dd(arr):
    di = {}
    for j in arr:
        di[j['key']] = j['value']
    return di

df['new_cil'] = df['col'].map(dd)
nk23
  • 179
  • 1
  • 10