我使用scrapy获取这个JSON提取物,但是desc有amunt和数量类型,这可能是g,gr,kg,L等。我不知道它是否可以提取此数据并将其添加到其他字段中。
创建档案后,如何在scrapy或单独的流程中实现这一目标。
P.S。我对JSON和scrapy以及我的学习都很陌生。
当前
{
'p_desc': ['Coffee 225 g '],
'p_price': ['8.00']
}
所需
{
'p_desc': ['Coffee'],
'p_amount': [225]
'p_amount_type': ['g']
'p_price': ['8.00']
}
答案 0 :(得分:0)
如果数据具有常规结构(即每个desc包含金额和金额类型作为最后两个字段),则此类操作有效。如果不是,您可能必须使用正则表达式。
一个观察结果:如果每个值都是唯一的,那么您就不需要列表,例如,您可以使用'Coffee'
代替['Coffee']
jsonData = {
'p_desc': ['Grain Black Coffee 225 g'],
'p_price': ['8.00']
}
var p_desc, p_amount, p_amount_type;
[p_amount_type, p_amount,...p_desc] = jsonData['p_desc'][0].split(" ").reverse();
jsonData["p_amount"] = [p_amount];
jsonData["p_amount_type"] = [p_amount_type];
jsonData["p_desc"] = p_desc.join(' ');
console.log(jsonData);

此外,您可能需要从说明中删除尾随空格。