Предположим, у вас есть
json_string ='[{ "firstName": "foo", "lastName": "bar", "age": 20, "email":"email@example.com"}, {"firstName": "name", "age": 40,"email":"email@example.com"}]'
Тогда вы можете
l = json.loads(json_string)
df = pd.DataFrame(l)
Что дает
age email firstName lastName
0 20 email@example.com foo bar
1 40 email@example.com name NaN
Тогда
>>> df.to_dict('records')
[{'age': 20,
'email': 'email@example.com',
'firstName': 'foo',
'lastName': 'bar'},
{'age': 40,
'email': 'email@example.com',
'firstName': 'name',
'lastName': nan}]
или
>>> df.to_json()
'{"age":{"0":20,"1":40},"email":{"0":"email@example.com","1":"email@example.com"},"firstName":{"0":"foo","1":"name"},"lastName":{"0":"bar","1":null}}'
Преимущество data frame
в том, что вы можете анализировать / манипулировать данными так, как вам хочется, прежде чем снова сделать их словарём / json.