Convert nested string field to dict in Python

When importing data from a tabular file, you may have nested fields inside a column. To work with them, you first need to convert them to a proper dictionary. This can be done using json.loads.

# Import libraries
import json
import pandas as pd

# Load sample JSON data
df = pd.read_csv('data/dict.csv', sep=';')
df
place grades
0 Ariel {"count": 12,"value": 4.3}
1 Nerval {"count": 8,"value": 3.9}
2 Zigzag {"count": 24,"value": 2.8}
3 Camelia {"count": 16,"value": 3.1}
4 Big Ben {"count": 4,"value": 3.7}
# Convert nested column to a dict
df['grades'] = df['grades'].apply(json.loads)
df
place grades
0 Ariel {'count': 12, 'value': 4.3}
1 Nerval {'count': 8, 'value': 3.9}
2 Zigzag {'count': 24, 'value': 2.8}
3 Camelia {'count': 16, 'value': 3.1}
4 Big Ben {'count': 4, 'value': 3.7}
# You can now read the dict inside the column
df['grade_count']  = df['grades'].apply(lambda x: x['count'])
df
place grades grade_count
0 Ariel {'count': 12, 'value': 4.3} 12
1 Nerval {'count': 8, 'value': 3.9} 8
2 Zigzag {'count': 24, 'value': 2.8} 24
3 Camelia {'count': 16, 'value': 3.1} 16
4 Big Ben {'count': 4, 'value': 3.7} 4