Reputation: 51
The following is the json data available to me
{
"status": "success",
"message": "Transactions Details",
"TxnArray": [
{
"transactionAmount": {"0": 3500},
"createdAt": {"0": "17/04/2020"}
},
{
"transactionAmount": {"1": 4500},
"createdAt": {"1": "19/04/2020"}
}
]
}
Want to convert the above data in pandas Dataframe
like
transactionAmount createdAt
0 3500 17/4/2020
1 4500 19/4/2020
Upvotes: 1
Views: 47
Reputation: 2757
A slightly different yet compact approach,
pd.concat(pd.DataFrame.from_dict(d) for d in data['TxnArray'])
Upvotes: 1
Reputation: 2406
import pandas as pd
import json
json_str = json.loads('''{
"status": "success",
"message": "Transactions Details",
"TxnArray": [
{
"transactionAmount": {"0": 3500},
"createdAt": {"0": "17/04/2020"}
},
{
"transactionAmount": {"1": 4500},
"createdAt": {"1": "19/04/2020"}
}
]
}''')
df = pd.DataFrame(json_str['TxnArray'])
def clean_function(x):
return list(x.values())[0]
df = df.applymap(lambda x: clean_function(x))
Upvotes: 0
Reputation: 1257
A more compact approach:
import pandas as pd
df = pd.DataFrame([
{k: v[str(i)] for k, v in list_item.items()} for i, list_item in enumerate(json_data['TxnArray'])
])
Upvotes: 1