2017-08-30 58 views
0

即时通讯使用scrapy得到这个JSON提取,但是desc有innt的amunt和数量类型,这可能是g,gr,kg,L等。我不知道它的可能提取这些数据并将其添加到其他字段中。JSON字符串提取到字段

一旦他创建了文件,如何在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

事情是这样的工作,如果该数据有规则的结构(即每递减含有数量和金额类型为最后两个字段) 。如果不是,你可能不得不使用正则表达式。

一个观察:如果每个值是唯一的,你并不需要一个列表,比如,你可以只使用'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);

此外,您可能需要删除从描述中拖曳白色空间。

+0

感谢您的快速响应,字段p_desc并不总是3个值,但las 2始终是金额和金额类型。 黑咖啡100克 谷物黑咖啡1公斤 甜白糖棉花糖1毫升 等 – Bestialus

+0

这是我正在寻找。它解决了这个问题。这可以如何应用于文档。 – Bestialus