【发布时间】:2021-12-30 14:47:41
【问题描述】:
我有一列包含每行的 json 字符串。 我将它们转换为列表并使用 json normalize 以数据框的形式提取信息。
将 extras 视为数据框数据中的列,我首先使用以下查询以列表的形式提取数据
extras = extras.extras.apply(json.loads).values.tolist()
现在在将其转换为列表时,我使用以下命令提取信息
extras_df = pd.json_normalize(
extras,
record_path =['inventory_data'],
meta=['job_id','margin','stock','mrp',discount],
record_prefix = 'product_',
sep="_",
errors='ignore' )
我在这里遇到一个关键错误,因为我提取的上述附加列表中的一些列表中没有“inventory_data”。如果信息不可用,我需要能够在其旁边添加一个大小和数量的空键值对
以下数据相同
extras = [
{'job_id': 'b1b4354e-7869-442a-8763-dafbd9f33a5a',
'stock': '0',
'mrp': 1899.0,
'discount': 55.0,
'inventory_data': [{'size': 'M', 'quantity': '0'},
{'size': 'L', 'quantity': '0'},
{'size': 'XL', 'quantity': '0'},
{'size': 'S', 'quantity': '0'}],
'margin': 'Low',
},
{'job_id': 'b1b4354e-7869-442a-8763-dafbd9f33a5a',
'stock': '0',
'mrp': 999.0,
'discount': 50.0,
'inventory_data': [{'size': 'L', 'quantity': '0'},
{'size': 'S', 'quantity': '0'},
{'size': 'M', 'quantity': '0'},
{'size': 'XXL', 'quantity': '0'},
{'size': 'XL', 'quantity': '0'}],
},
**{'job_id': 'b1b4354e-7869-442a-8763-dafbd9f33a5a',
'stock': '0',
'mrp': 2799.0,
'discount': 52.0,
'margin': 'Low',
}]**
这里列表中的第三个元素没有库存数据键值对。如果列表中缺少此信息,我想在此处插入空值
提前感谢这里的任何线索
【问题讨论】:
标签: python json list dictionary json-normalize