2017-03-03 91 views
-1

花了整整一天的时间试图解决我的问题后,我来找你寻求一些帮助......我目前正在用scrapy构建一个web scrawler,但是我不能正确导入我的json文件。在scrapy中的Json响应中爬行

的JSON的结构如下:

{ 
    "Response": "Success", 
    "Type": 100, 
    "Aggregated": false, 
    "Data": [ 
    { 
     "time": 1452643200, 
     "close": 1.21, 
     "high": 1.21, 
     "low": 1.21, 
     "open": 1.21, 
     "volumefrom": 0, 
     "volumeto": 0 
    }, 
    { 
     "time": 1452646800, 
     "close": 1.21, 
     "high": 1.21, 
     "low": 1.21, 
     "open": 1.21, 
     "volumefrom": 0, 
     "volumeto": 0 
     } 
    ], 
    "TimeTo": 1452679200, 
    "TimeFrom": 1452643200, 
    "FirstValueInArray": true, 
    "ConversionType": "direct" 
} 

每当我打电话:

 json_string = response.body_as_unicode() 
    for Data in json_string: 
     for close in Data: 
      print close 

我遇到两个不同的问题:

  • 我不能检索项目从内“数据”,因为它似乎是一个字符串,我不能输入任何参数。
  • 打印功能垂直打印所有返回的数据。

我的愿望是检索数据,然后可以说,当(例如)“高”= 0时,爬行器必须停止。

感谢您的帮助,如果我在某个地方不太清楚,请提前帮忙。

M.

回答

0

您需要首先分析字符串:

import json 

d = json.loads(json_string) 
for rec in d['Data']: 
    if rec['high'] == 0: 
     break 
    print(rec['close']) 
+0

哇,这显然奏效了!非常感谢你的帮助。 –