<pre><code>l = [
{
"ID": "12345",
"productName": "Product A ",
"minPrice": "$89.00",
"maxPrice": "$89.00",
"variationProducts": [
{
"variantColor": "JJ0BVE7",
"variantSize": "080",
"sellingPrice": "$89.00",
"inventory": 3,
},
{
"variantColor": "JJ0BVE7",
"variantSize": "085",
"sellingPrice": "$89.00",
"inventory": 6,
}
],
"productAttributes": [
{
"ID": "countryOfOrigin",
"value": "Imported"
},
{
"ID": "csProductCode",
"value": "1100"
}
]
},
{
"ID": "23456",
"productName": "Product B",
"minPrice": "$29.99",
"maxPrice": "$69.00",
"variationProducts": [
{
"variantColor": "JJ169Q0",
"variantSize": "050",
"sellingPrice": "$69.00",
"inventory": 55,
},
{
"variantColor": "JJ123Q0",
"variantSize": "055",
"sellingPrice": "$69.00",
"inventory": 5,
}
],
"productAttributes": [
{
"ID": "countryOfOrigin",
"value": "Imported"
},
{
"ID": "csProductCode",
"value": "1101"
}
]
}
]
import pandas as pd
from itertools import *
final_list = []
for val in l:
d = {}
d.update({key:val[key] for key in val.keys() if key not in ['variationProducts','productAttributes']})
for prods,attrs in izip_longest(val['variationProducts'],val['productAttributes']):
if prods:
d.update(prods)
if attrs:
d.update({attrs['ID']:attrs['value']})
final_list.append(d.copy())
pd.DataFrame(final_list)
</code></pre>